Problemas al usar getline para leer archivos en c++
En C++, la función getline se utiliza para leer una línea completa de datos del flujo de entrada estándar cin. Es decir, de forma predeterminada, getline no lee el archivo, sino la entrada del teclado en la línea de comando.
Para usar getline para leer archivos, lo primero que debemos hacer es redirigir cin al archivo a leer. El siguiente código se puede utilizar para implementar
streambuf *backup;
ifstream fin
fin.open("data.in"); los datos a leer del documento.
backup = cin.rdbuf(); // Realiza una copia de seguridad del búfer de cin.
cin.rdbuf(fin.rdbuf()); // Redirige el buffer de cin a un archivo.
//Realice las operaciones de lectura requeridas, incluido getline.
cin.rdbuf(backup); //Restaura el búfer cin original.
Después de ejecutar cin.rdbuf(fun.rdbuf());
puedes usar getline para leer la línea completa de datos del archivo.
El método de llamada de getline es
getline(char
*
buf,
int p >
tamaño);
Es decir, una fila de datos se lee y se almacena en buf. Si la longitud de los datos excede la longitud especificada por el tamaño, solo se leen los bytes de datos de tamaño.