Ifstream — сбросить бит EOF

Я работаю с ifstream. Я читаю до тех пор, пока не будет установлен бит EOF (мне так нужно).

Почему тогда не работает это:

// 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.";    
}

Функция read ни разу не увенчалась успехом. Я тоже пытаюсь использовать IN.setstate(ifstream::goodbit) вместо IN.clear(). Но это то же самое, я прав?


person Nanik    schedule 11.03.2012    source источник
comment
Этот код недействителен. Вам нужно будет вызвать read для фактического объекта istream.   -  person Billy ONeal    schedule 11.03.2012
comment
Кстати: вообще говоря, ALLCAPS используется для MACROS и DEFINE.   -  person 111111    schedule 11.03.2012


Ответы (1)


Измените свой код следующим образом:

IN.clear();
IN.seekg(0, ios::beg);
person Raphael Bossek    schedule 11.03.2012