Молодогвардейцев 454015 Россия, Челябинская область, город Челябинск 89085842764
MindHalls logo

Быстрая шпаргалка: откровение про eof()

Проблема: в программе на C++ из файла считывается лишняя информация, либо последняя строка считывается дважды.

Пример кода

while(!file.eof()) {
    int a;
    file >> a;

    cout << a;
}

Дело в том, что проверять конец файла нужно непосредственно после считывания из него. Например так:

while(true) {
    int a;
    file >> a;

    if(file.eof()) {
        break;
    }
    
    cout << a;
}