Форум программистов, компьютерный форум CyberForum.ru

Обработка файлов. Функция seekg(); - C++

Восстановить пароль Регистрация
 
kebal
9 / 9 / 0
Регистрация: 02.11.2012
Сообщений: 153
20.02.2013, 01:06     Обработка файлов. Функция seekg(); #1
ifstream fileReader("sdf.txt");
int a;
while (fileReader >> a) { ...; }
А теперь, чтобы повторить данный while нужно написать
fileReader.clear();
fileReader.seekg(0);
Так вот, почему не достаточно одного seekg(0)? Эта функция перемещает ползунок чтения на начало файла. А вот функция clear() устанавливает флаг ошибки в положение "нет ошибки" и я не пойму зачем нам это нужно, если и функции seekg(0) по идее достаточно, а ошибки считывания никакой не было.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.02.2013, 01:06     Обработка файлов. Функция seekg();
Посмотрите здесь:

C++ Не запускается програма с seekg
Какие различия у функций seekg и seekp для работы с файлами? C++
C++ Разница между seekg() и seekp()
методы seekg и seekp C++
C++ Как работает команда seekg?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
20.02.2013, 01:27     Обработка файлов. Функция seekg(); #2
если вы прочитаете EOF, то больше ничего сделать не сможете, а такая последовательность действий восстанавливает работоспособность потока
kebal
9 / 9 / 0
Регистрация: 02.11.2012
Сообщений: 153
20.02.2013, 01:32  [ТС]     Обработка файлов. Функция seekg(); #3
то есть если даже весь файл состоит из int, то когда мой while прочитает последний int программа дойдет до конца файла, да? не нужно задавать символ EOF в файле напрямую типа ^Z?
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
20.02.2013, 01:41     Обработка файлов. Функция seekg(); #4
Да, дойдет.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.02.2013, 01:46     Обработка файлов. Функция seekg(); #5
Цитата Сообщение от kebal Посмотреть сообщение
не нужно задавать символ EOF в файле напрямую типа ^Z?
В каждом файле (даже пустом) он есть.
Yandex
Объявления
20.02.2013, 01:46     Обработка файлов. Функция seekg();
Ответ Создать тему
Опции темы

Текущее время: 21:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru