Непонятный нюанс while(!atEnd()), не доходит до конца файла |
Здравствуйте, гость ( Вход | Регистрация )
Непонятный нюанс while(!atEnd()), не доходит до конца файла |
NordWest |
29.9.2010, 11:37
Сообщение
#1
|
Студент Группа: Участник Сообщений: 86 Регистрация: 26.11.2008 Пользователь №: 433 Спасибо сказали: 1 раз(а) Репутация: 0 |
Сейчас в конкретном примере показать не смогу, но пару раз встречался. Вобщем то в том и дело, что снова пишу подобный код и не могу вспомнить правильный вариант.
Ситуация такая. Построчное считывание из текстового файла. Код примерно такой: CODE QFile pnFile(plnFileName); pnFile.open(QIODevice::ReadOnly | QIODevice::Text); QTextStream pnStream(&pnFile); while(!pnStream.atEnd()) { ... } В цикле происходит считывание из pnStream текстовых строк. Проблема в том, что иногда цикл завершается на половине файла. И зависит это от того, что стоит в while. В примере один случай, а можно написать while(!pnFile.atEnd()). И в одном из вариантов будет всё в порядке, а в другом нет и файл не будет считан до конца. Может быть я каких-то нюансов не учёл, а они важны. Я это случайно заметил, когда обнаружил уж очень большую недостачу данных. Может тут какое-то явное правило существует?.. Сообщение отредактировал NordWest - 29.9.2010, 11:45 |
|
|
Litkevich Yuriy |
29.9.2010, 16:21
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Текстовая версия | Сейчас: 21.12.2024, 13:23 |