Ifstream - сбросить бит EOF - PullRequest
       25

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

7 голосов
/ 11 марта 2012

Я работаю с 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() тоже.Но это то же самое, я прав?

1 Ответ

7 голосов
/ 11 марта 2012

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

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