2012-03-11 21 views
7

Estoy trabajando con ifstream. Leo hasta que se establece el bit EOF (lo necesito de esta manera).Ifstream - Restablecer bit EOF

¿Por qué entonces no funciona esto:

// IN is ifstream file. CH is char. 

if (IN.eof()) { 
    IN.seekg(ios::beg); 
    IN.clear(); 

    if (read((char*)&CH, sizeof(CH))) 
     cout << "Succes."; 
    else 
     cout << "Not S.";  
} 

La función read no es el éxito en cualquier momento. Intento utilizar IN.setstate(ifstream::goodbit) en su lugar IN.clear() también. Pero es lo mismo, ¿estoy en lo cierto?

+0

Ese código no es válido. Tendría que llamar a 'leer' en el objeto' istream' real. –

+3

BTW: en general, ALLCAPS se usa para MACROS y DEFINE. – 111111

Respuesta

7

cambiar el código de la siguiente manera:

IN.clear(); 
IN.seekg(0, ios::beg);