Witam, chciałem zrobić programik, który wypisze wszystkie liczby znajdujące się w notatniku, jako utrudnienie liczby te ukryłem między tekstem. To jest ten kod:
#include <iostream>
#include <fstream>
using namespace std;
void wypisanieLiczb_plik( string nazwaPiku )
{
int liczba;
int x = 1;
plik.open( nazwaPiku.c_str() );
if( plik.bad() )
{
cout << "Nie udalo sie otworzyc pliku..." << endl;
plik.close();
return;
}
while( !plik.eof() )
{
plik >> liczba;
if( plik.fail() )
{
plik.clear();
continue;
}
x++;
cout << x << " liczba to: " << liczba << endl;
}
plik.close();
}
int main()
{
wypisanieLiczb_plik( "tekst.txt" );
return 0;
}
Problem leży w tym, że wpada on w nieskończoną pętlę while i nie mam pojęcia dlaczego. Jestem świeżo po czytaniu kursu o obsłudze plików i mogłem źle zrozumieć jakąś komendę dlatego chciałbym żeby ktoś przeanalizował to co napisałem i poprawił mnie.
Tutaj dodatkowo zawartość pliku tekstowego na którym pracuję...:
//To 23 jest 32 tekst.
Ten tekst 54 jest bardzo dziwny.
Nie ma w nim nic 123 ciekawego.
Czy jestes 69 pewien, że chcesz go czytac?
To trudno bo 3 ten tekst sie wlasnie 82 konczy.//
Ps.
Myślałem, że problem leży w niewyczyszczeniu bufora strumienia jednak mimo wpisania przed continue plik.sync() problem nadal wystepuje