Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Podwójne wczytywanie z pliku

Ostatnio zmodyfikowano 2014-04-25 09:57
Autor Wiadomość
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:
C/C++
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.
P-108600
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
P-108602
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 ? :)
P-108603
colorgreen19
» 2014-04-24 22:05:20
hmmm, spróbuj zamknąć i ponownie otworzyć strumień przed drugą pętlą
C/C++
plik.close();
plik.open( "file.txt" );
P-108623
Adik80
» 2014-04-25 09:57:07
W pierwszej petli ustawiasz eofbit, wiec oprocz seekp() trzeba wywolac jeszcze clear()
P-108636
« 1 »
  Strona 1 z 1