Ficheros con Salto de linea[C++]

Iniciado por ianmorar03, 9 Agosto 2017, 21:58 PM

0 Miembros y 1 Visitante están viendo este tema.

ianmorar03

Estoy haciendo un programa que me lea un fichero, pero si el fichero viene asi:

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 (cpp) [Seleccionar]

string ficheroAbrir;
string leer;
cout << "Inserte el nombre del fichero que quiera abrir > ";
getline(cin, ficheroAbrir);
ficheroAbrir = "ficheros/" + ficheroAbrir + ".txt";
ifstream archivo;
archivo.open(ficheroAbrir.c_str());
getline(archivo, leer);
cout << "Linea leida" << leer;
archivo.close();


les agradeceria su ayuda y muchas gracias  ;D
Aquellos que estan locos como para pensar que pueden cambiar el mundo , son los que lo hacen.

ivancea96

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 (cpp) [Seleccionar]
while(!archivo.eof()) { //...

ianmorar03

Cita de: 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 (cpp) [Seleccionar]
while(!archivo.eof()) { //...

Entiendo lo que me dices, lo que no entiendo es como pongo el bucle para leer las lineas
Aquellos que estan locos como para pensar que pueden cambiar el mundo , son los que lo hacen.

ivancea96

Son 2 líneas no? Empieza escribiendo 2 veces el getline ¯\_(ツ)_/¯
¿Y si son 3 líneas?

ianmorar03

Cita de: 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?
gg te entiendo, pero si el archivo tiene 1000 lineas? escribo 1000 veces getline? Exactamente esa es mi pregunta.
Aquellos que estan locos como para pensar que pueden cambiar el mundo , son los que lo hacen.

ivancea96

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.