![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
WWWind |
|
|||
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 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 25.11.2002 Репутация: нет Всего: нет |
было что то похожее давно, а выкручивался тогда просто - заново открывал файл на чтение, правда в файл ничего не писал, так что это было не критично
|
|||
|
||||
Step |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
Попробуй прочитать дважды после позиционирования, бываю такие глюки, на второй раз буфер должен быть заполненный.
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
DrMasik |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 13.12.2002 Репутация: нет Всего: нет |
Это не глюк! Все правильно! Ты попробуй прочитать первые 3 символа, а потом 1-й - может дальше сам догадаешся...
|
|||
|
||||
Step |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
может объяснишь, а то так с ходу не пойму, что то, или ты хочеш сказать что при достижении конца файла, и позиционировании его на начало, должна пройти еще какаято инициализация. -------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
DrMasik |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 13.12.2002 Репутация: нет Всего: нет |
Какого типа у тя
infile ? |
|||
|
||||
comcon1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: 12 Всего: 17 |
Я поднял эту тему из архива, поскольку на вопрос так и не ответили. Я столкнулся с абсолютно тем же. Файл был мною открыт как std::ifstream, что наверное и имел ввиду DrMasik. После этого начали проходить позиционирования (функция tellg() стала возвращать не -1). Но getline() с новой позиции все равно не проходит. Посмотрите еще раз тему и добейте плз..
Добавлено @ 11:03 Точнее я добью ее сам: после позиционирования infile.seekg() необходимо очистить флаги. infile.clear(). Тогда getline() проходит. Значит еще раз: 1. Определить infile как std::ifstream.. 2. Очистить флаги после позиционирования.. [теперь все, вроде] |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |