Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: ianmorar03 en 9 Agosto 2017, 21:58 pm



Título: Ficheros con Salto de linea[C++]
Publicado por: ianmorar03 en 9 Agosto 2017, 21:58 pm
Estoy haciendo un programa que me lea un fichero, pero si el fichero viene asi:
Código:
hola mundo
esta es otra linea
Lo que me muestra en pantalla es solo "hola mundo", quisiera saber como hago para leer la otra linea y mostrarla por pantalla.
Aqui dejo mi codigo.
Código
  1. string ficheroAbrir;
  2. string leer;
  3. cout << "Inserte el nombre del fichero que quiera abrir > ";
  4. getline(cin, ficheroAbrir);
  5. ficheroAbrir = "ficheros/" + ficheroAbrir + ".txt";
  6. ifstream archivo;
  7. archivo.open(ficheroAbrir.c_str());
  8. getline(archivo, leer);
  9. cout << "Linea leida" << leer;
  10. archivo.close();
  11.  
  12.  
les agradeceria su ayuda y muchas gracias  ;D


Título: Re: Ficheros con Salto de linea[C++]
Publicado por: ivancea96 en 9 Agosto 2017, 22:08 pm
Tienes 1 "getline(archivo, leer);", así que cogerá 1 línea.

Si quieres que coja varias, tendrás que ponérselo. Si quieres que lea todo el fichero, tendrás que coger líneas con ese getline hasta que el fichero se acabe. Esto lo haces con un bucle while, por ejemplo. La condición de este bucle será que el archivo haya sido leído o no. Eso lo tienes con "archivo.eof()" (eof -> end of file):
Código
  1. while(!archivo.eof()) { //...


Título: Re: Ficheros con Salto de linea[C++]
Publicado por: ianmorar03 en 9 Agosto 2017, 22:52 pm
Tienes 1 "getline(archivo, leer);", así que cogerá 1 línea.

Si quieres que coja varias, tendrás que ponérselo. Si quieres que lea todo el fichero, tendrás que coger líneas con ese getline hasta que el fichero se acabe. Esto lo haces con un bucle while, por ejemplo. La condición de este bucle será que el archivo haya sido leído o no. Eso lo tienes con "archivo.eof()" (eof -> end of file):
Código
  1. while(!archivo.eof()) { //...

Entiendo lo que me dices, lo que no entiendo es como pongo el bucle para leer las lineas


Título: Re: Ficheros con Salto de linea[C++]
Publicado por: ivancea96 en 9 Agosto 2017, 22:59 pm
Son 2 líneas no? Empieza escribiendo 2 veces el getline ¯\_(ツ)_/¯
¿Y si son 3 líneas?


Título: Re: Ficheros con Salto de linea[C++]
Publicado por: ianmorar03 en 9 Agosto 2017, 23:13 pm
Son 2 líneas no? Empieza escribiendo 2 veces el getline ¯\_(ツ)_/¯
¿Y si son 3 líneas?
gg te entiendo, pero si el archivo tiene 1000 lineas? escribo 1000 veces getline? Exactamente esa es mi pregunta.


Título: Re: Ficheros con Salto de linea[C++]
Publicado por: ivancea96 en 9 Agosto 2017, 23:14 pm
Pones el getline y lo que sea el código dentro del bucle while. Ese while con esa condición termina cuando el archvio ha sido leído al completo.