Проблема с методом seekg класса ifstream.

Модератор: Модераторы разделов

Banks
Сообщения: 13
ОС: Linux Mandriva 2008

Проблема с методом seekg класса ifstream.

Сообщение Banks »

Код: Выделить всё

#include <fstream>
#include <iostream>
using namespace std;
int main()
{
  ifstream name_of_list("list");
  char filename[255];
  while(!name_of_list.eof())
  {
    name_of_list>>filename;
    cout<<filename<<endl;
  }

  name_of_list.seekg(0,ios::beg);
  name_of_list>>filename;
  cout<<filename<<endl;
  return 0;
}

У меня в файле "list" 3 строки, первая строка имеет текст:1, вторая:2, третья: 3. Программа на экран выводит:

Хотя вроде как должна выводить:

В чем проблема?
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Проблема с методом seekg класса ifstream.

Сообщение NickLion »

Проблема в том, что при вызове seekg у Вас взведен флаг eof, и метод просто не отрабатывает. Нужно вызвать name_of_list.clear(); перед seekg.
Спасибо сказали: