Podwójne wczytywanie z pliku
Ostatnio zmodyfikowano 2014-04-25 09:57
Tumeg Temat założony przez niniejszego użytkownika |
Podwójne wczytywanie z pliku » 2014-04-24 17:23:29 Pytanie z czystej ciekawości, bo znam rozwiązanie problemu, ale napotkałem coś co mnie zaskoczyło :) A mianowicie dlaczego po odczytaniu danych z pliku nie mogę później odczytać ich jeszcze raz ? A więc to tak: int main() { ifstream plik; string linia; int linie = 0; int indeks = 0; int liczba = 0; plik.open( "file.txt" ); if( plik.good() ) { while( getline( plik, linia ) ) { ++linie; } while( !plik.eof() ) { plik >> liczba; cout << liczba << endl; } } else { cout << "Nie udalo sie otworzyc pliku!" << endl; } return 0; }
Za drugim razem nic nie wyświetla. Czyszczenie strumienia odczytu nic nie dało. I proszę nie pytać dlaczego od razu za pierwszym razem nie wyświetlam liczb - musi to nastąpić później. |
|
colorgreen19 |
» 2014-04-24 17:52:48 wchodząc do drugiej petli masz juz kursor w pliku na koncu, a w 2 petli masz warunek, ze petla ma się wykonywać dopuki kursor nie dojdzie do konca. skoro on juz tam jest to pętla sie nie wykonuje |
|
Tumeg Temat założony przez niniejszego użytkownika |
» 2014-04-24 18:03:21 A no słusznie. Próbowałem ustawić kursor na początek za pomocą: plik.seekg( 0 ); ale oczywiście nic nie dało, jakieś pomysły ? :) |
|
colorgreen19 |
» 2014-04-24 22:05:20 hmmm, spróbuj zamknąć i ponownie otworzyć strumień przed drugą pętlą plik.close(); plik.open( "file.txt" ); |
|
Adik80 |
» 2014-04-25 09:57:07 W pierwszej petli ustawiasz eofbit, wiec oprocz seekp() trzeba wywolac jeszcze clear() |
|
« 1 » |