Cześć, mam problem z warunkiem zatrzymania pętli.
Do napisania mam taki program, Napisz program, który odczytuje co trzeci znak z pliku. Użyj do tego metod poznanych w niniejszym rozdziale. Przetestuj poprawność działania programu na bardzo krótkim pliku tekstowym, wypisując co trzeci odczytany znak na ekranie.
Mój kod:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream plik( "Odczyt.txt" );
if( !plik.good() )
return 0;
char znak;
plik.seekg(2);
while(plik.good()){
plik >> znak;
cout << znak << endl;
plik.seekg(2,ios::cur);
if(plik.eof())
break;
}
plik.close();
return 0;
}
W pliku znajduje się alfabet, bez spacji: abcdefghijklmnoprstuwyz
Z tego co widzę powinno wypisać mi: c f i l o s w, a wypisuje mi to samo tylko na końcu jest 2x w, c f i l o s w w.
Ogólnie jak próbowałem zmieniać warunek w pętli to wychodziły mi różne wyniki np.
while(plik >> znak) albo while( plik.get(znak)) wypisuje mi d h l p u z
Może ktoś mi pomóc z tym warunkiem ? Jak on musi wyglądać zeby nie wypisywało się na końcu 2x 'w' oraz dlaczego kiedy wezmę jeden z dwóch powyższych while'ów dostaje trochę inny wynik ?