Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
iwsyhgia
1 / 1 / 0
Регистрация: 11.01.2014
Сообщений: 51
#1

Чтение файла, лишняя итерация - C++

01.05.2014, 12:23. Просмотров 565. Ответов 2
Метки нет (Все метки)

Вопрос по функции feof(). Я так понимаю она должна сигнализировать о конце файл, если был прочитан последний байт файла. Но у меня в примере снизу это происходит только с одной лишней итерацией (когда последний байта файл считывается, цикл выполняется еще раз и только потом происходит выход из цикла). С чем это связано?
C++
1
2
3
4
5
6
7
8
9
10
void test2() {
   FILE *f;
   f = fopen("/home/iwsyhgia/workspace/1/input.txt", "rb");
   unsigned char byte;
   while (!feof(f)) {
      byte = fgetc(f);
      ...
   }
   fclose(f);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2014, 12:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чтение файла, лишняя итерация (C++):

При чтение из файла появляется лишняя запись - C++
Программа при чтение из файла дублирует последнюю запись файла.Можете объяснить в чём тут ошибка.В заранее благодарен #include...

Выводится лишняя строка из файла - C++
Здравствуйте. При выводе из файла выводится лишняя строка. Т.е. если 13 строк в файле, то выводится 14 пустая строка. Вот код: void...

Переделать в коде чтение из файла в чтение с клавиатуры - C++
Переделайте что бы текст считывался с клавиатуры, а не с файла! Буду благодарен за помощь! //файл должен начинаться со слова, между...

Чтение из файла. Повторное чтение файла - C++
Добрый день. Необходимо реализовать в программе функцию повторного чтения данных из файла, в случае некорректного ввода их в оный. Вот...

Преобразование текстового файла в двоичный и чтение исходных данных из двоичного файла. - C++
#include<iostream> #include<fstream> #include<locale.h> #include<iomanip> #include <cstdlib> using namespace std; struct...

Чтение нескольких структур и одной переменной из бинарного файла. Формат файла имеется - C++
Формат файла состоит из 3 структур и одной переменной. Подробное описание формата во вложении, просьба посмотреть его. У меня возникла...

2
TenGen
Будущее рядом
98 / 96 / 20
Регистрация: 06.03.2014
Сообщений: 342
01.05.2014, 12:36 #2
iwsyhgia, а что за переменная считывается
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
01.05.2014, 13:02 #3
iwsyhgia, потому что признак конца файла выставляется после попытки чтения за концом файла.
This indicator is generally set by a previous operation on the stream that attempted to read at or past the end-of-file.
отсюда
Т.е. проверять на eof надо ПОСЛЕ чтения (fgetc).
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2014, 13:02
Привет! Вот еще темы с ответами:

как может корректно выполняющийся оператор >> (чтение из текстового файла) негативно влиять на открытие другого файла? - C++
Друзья! Создадим два текстовых файла, f_0.txt и f_1.txt и что-нибудь в них запизаем, например в первый запихаем 1234 а во второй 5678 и...

Чтение файла с несколькими знаками конца файла - C++
В файле несколько раз встречается ноль, и ни как не получается прочитать его полностью. Как можно решить данную проблему ?

Лишняя черта - C++
Программа "Слияние", не могу избавиться от последней черты (" | ") в выводе "Выдач". Прошу помочь с удалением последней черты. ...

Лишняя скобка? - C++
Ругается на строку str = L"всё"; Так- error C2059: синтаксическая ошибка: ] \wchar\wchar\wchar.cpp 11 #include <iostream> ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru