Título: getline Publicado por: UserLoser en 20 Enero 2019, 16:55 pm Hola a todos. Llevo unos días aprendiendo a programar y este es el primer problema al que no le veo solución.
En el siguiente programa, el getline hace como si no existiera.Directamente no hace nada. Lo he probado en otro mini-programa y funciona perfectamente, pero en éste no.¿Sabéis qué sucede? Código: #include <iostream> Título: Re: getline Publicado por: K-YreX en 20 Enero 2019, 17:27 pm Lo primero de todo pon tu código entre etiquetas de código GeSHi (dando a modificar mensaje y encima del cuadro de texto tienes la opción para elegirlas).
El problema que tienes es típico cuando se trabaja con cadenas de caracteres. Al introducir el nombre del archivo, introduces el nombre y le das a enter. Ese enter se queda en el buffer y cuando pides el texto, el enter del buffer pasa a la variable <Texto>. Por eso parece que se lo salta y si te fijas en el archivo creado tiene un salto de línea guardado. En este mismo foro hay varios temas para tratar ese problema del buffer. Por favor, no uses el típico <fflush(stdin)> ya que para algo hemos tratado de buscar alternativas más correctas en los temas que te comento. Aparte de eso te recomiendo que si vas a usar <string>, no mezcles con cadenas de <char>. Si creas un <string> para guardar el nombre del archivo luego sólo tienes que hacer esto para poder abrir el archivo: Código Con ese método transformas un <string> en una cadena <char>. También te recomiendo que en vez de usar etiquetas y <goto()>, emplees un filtro <do while>. Lo que tú has hecho está más relacionado con implementaciones a bajo nivel. En lenguajes de alto nivel hay otras opciones como la que te he comentado, es más correcto. Y en vez de usar <system("pause")>, te recomiendo usar <cin.get()>, el resultado es el mismo y te evitas hacer una llamada al sistema, lo cual es más costoso. Suerte :-X Título: Re: getline Publicado por: UserLoser en 20 Enero 2019, 17:46 pm Muchas gracias, YreX-DwX, voy a buscar esos temas que mencionas. Ya he hecho lo del string, y voy a pensar como meter el do while, jeje.
Gracias de nuevo. Título: Re: getline Publicado por: K-YreX en 20 Enero 2019, 18:05 pm Aquí (https://foro.elhacker.net/programacion_cc/iquestqueda_algo_en_el_buffer_de_entrada_stdin_solucionado-t489993.0.html) te dejo el enlace al tema, ya que sino se te va a hacer un poco largo encontrarlo. Suerte :-X
|