error en lectura de un txt en c++

Iniciado por phantomphiniss, 1 Mayo 2020, 01:56 AM

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

phantomphiniss

Buenas

tengo duda en el código ya que me esta marcando que el identificador getline no esta definido, a continuación coloco el código:

Código (cpp) [Seleccionar]
void reglas()
{
   ifstream archivo;
   string leer;
   archivo.open("reglas.txt", ios::in);
   while (!archivo.eof())
   {

       getline(archivo,leer);
       cout << leer << endl;
   }
   archivo.close();
}


Mod: Los códigos van entre etiquetas GeSHi.
shindigam

@XSStringManolo

Pon el error exacto. getline está definido en la biblioteca std string. #include <string>

RayR

Pon algo más de código. En especial los #include y las directivas o declaraciones using que tengas.

Al margen de eso, leer archivos de la manera en que lo estás haciendo está mal. eof() sólo es true después de que se ha intentado leer más allá del fin del archivo. Por lo tanto, tu último getline puede fallar, lo cual hará que la variable leer no tenga un valor válido. De hecho, esto sucederá siempre que tengas un archivo de texto que termine con un caracter de nueva línea.

Aquí una forma correcta de leerlo:

Código (cpp) [Seleccionar]
while (getline(archivo, leer)) {
    cout << leer << endl;
}


De esa manera, si getline no fue capaz de leer datos (ya sea porque se llegó al fin del archivo o por otra razón), salimos del bucle.