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.
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
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):
while(!archivo.eof()) { //...
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):
while(!archivo.eof()) { //...
Entiendo lo que me dices, lo que no entiendo es como pongo el bucle para leer las lineas
Son 2 líneas no? Empieza escribiendo 2 veces el getline ¯\_(ツ)_/¯
¿Y si son 3 líneas?
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.
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.