Problemy z seekg()


(Kamiljano) #1

mój kod wygląda następująco:

#include 

#include 

#include 

using namespace std;


int main()

{

fstream in;

in.open("plik.txt", fstream::in);

string a;

if (!in.is_open()) return 1;

in.seekg(5, fstream::beg);

while (!in.eof()){

in>>a;

cout<
}

in.seekg(0, fstream::beg);

while (!in.eof()){

in>>a;

cout<
}

in.close();

return 0;

}

[/code]

nie wiem czemu, ale z jakichś względów o ile za pierwszym razem metoda seekg() działa bez zarzutu, to gdy już raz dotrę do EOF, przestaje ona działać... to jak inaczej w tym momencie mam przesunąć sobie znowu ten wskaźnik na początek pliku?


([alex]) #2

Drugi seekg nie działa, ponieważ po zakończeniu pierwszej pętli obiekt in ma ustawioną flagę ios::failbit.

Po pierwszej pętli zapoidaj:

in.clear();