Почему fstream распечатывает последнюю запись файла - PullRequest
0 голосов
/ 25 марта 2019

почему последняя запись двоичного файла печатается дважды?

while( (inFile)
{
    inFile.read(reinterpret_cast <char*> (&acc), sizeof(acc));  
    display(acc);
}

1 Ответ

2 голосов
/ 25 марта 2019

Поскольку ваш код должен читать

while (inFile.read(reinterpret_cast<char*>(&acc), sizeof(acc))
{
    display(acc);
}

Ваша версия проверяет только на сбой после вы распечатали сбойное чтение.Или, другими словами, while (infile) - это не проверка того, что следующее чтение будет успешным, а проверка того, что последнее чтение прошло успешно.

...