Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Функция getline(), следующая проблема ... 
:(
    Опции темы
WWWind
Дата 22.11.2002, 08:39 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Читаю данные из файла с помощью функции getline();
std::string buffer;
std::getline(infile,buffer,'\n');

Сперва, конечно, позиционирую на начало файла
std::string::size_type pos=0;
infile.seekg(pos,std::ios::beg);

Когда дохожу до конца файла и снова ставлю на первую позицию, то не могу ничего прочитать из файла. Делаю getline(...), а buffer пуст.    :(

В чем может быть проблема?

заранее спасибо)
  Вверх
Alamo
Дата 29.11.2002, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 25.11.2002

Репутация: нет
Всего: нет



было что то похожее давно, а выкручивался тогда просто - заново открывал файл на чтение, правда в файл ничего не писал, так что это было не критично
PM MAIL   Вверх
Step
Дата 30.11.2002, 03:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



Попробуй прочитать дважды после позиционирования, бываю такие глюки, на второй раз буфер должен быть заполненный.


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
DrMasik
Дата 19.12.2002, 07:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 13.12.2002

Репутация: нет
Всего: нет



Это не глюк! Все правильно! Ты попробуй прочитать первые 3 символа, а потом 1-й - может дальше сам догадаешся...
PM MAIL ICQ   Вверх
Step
Дата 19.12.2002, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



Цитата(DrMasik @ 18.12.2002, 23:36)
Это не глюк! Все правильно! Ты попробуй прочитать первые 3 символа, а потом 1-й - может дальше сам догадаешся...

может объяснишь, а то так с ходу не пойму, что то, или ты хочеш сказать что при достижении конца файла, и позиционировании его на начало, должна пройти еще какаято инициализация.


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
DrMasik
Дата 21.12.2002, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 13.12.2002

Репутация: нет
Всего: нет



Какого типа у тя
infile
?
PM MAIL ICQ   Вверх
comcon1
Дата 24.7.2005, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

Репутация: 12
Всего: 17



Я поднял эту тему из архива, поскольку на вопрос так и не ответили. Я столкнулся с абсолютно тем же. Файл был мною открыт как std::ifstream, что наверное и имел ввиду DrMasik. После этого начали проходить позиционирования (функция tellg() стала возвращать не -1). Но getline() с новой позиции все равно не проходит. Посмотрите еще раз тему и добейте плз..
Добавлено @ 11:03
Точнее я добью ее сам: после позиционирования infile.seekg() необходимо очистить флаги. infile.clear().
Тогда getline() проходит.
Значит еще раз:
1. Определить infile как std::ifstream..
2. Очистить флаги после позиционирования..
[теперь все, вроде]


--------------------
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0717 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.