Hola, estoy haciendo un programa que lea un fichero con la siguiente estructura:
Código:
4
a23fdssc
ascda223
asd
-
El primer número indica el número de líneas que tiene el fichero a continuación y lo que tiene que hacer el programa es contar el número de carácteres que tiene cada línea. Para ello he hecho el siguiente intento (ejecuto el programa redirigiendo el archivo a cin)
Código:
#include <iostream>
#include <string>
using namespace std;
int main()
{
int lineas;
string s;
cin >> lineas; //leo el primer valor del archivo, lo lee bien
for(int i=0; i<lineas; i++)
{
getline(cin,s); //leo una línea como string
cout << s.size() << endl; //miro la longitud
}
return 0;
}
El problema que tengo es que por alguna razón en la primera iteración del for getline lee una string vacía. No tengo ni idea de por qué pasa esto. Si leo el primer valor como string y convirtiéndola a int otra vez (para asegurarme de que en la primera linea leyera el salto de linea \n ) con el mismo problema.
Gracias por adelantado