Link do zadania: http://cpp0x.pl/kursy/Kurs-C++/Poziom-4/Wczytywanie-zawartosci-pliku-a-kontrola-bledow/485
Treść zadania:
- Napisz program, który wczyta z pliku liczby całkowite i wypisze je na ekranie. Wszelkie nieprawidłowe znaki mają zostać pominięte. Program ma wypisać również sumę wszystkich wczytanych liczb. Przykładowa zawartość pliku z danymi:
a 1 2 321b9 ac.de ef#@g 5 #3
Teraz moja częśc kodu odpowiadająca za wyświetlanie samych liczb:
while (!file.eof())
{
file>>number;
if(file.fail() || file.bad())
{
file.clear();
file.get();
continue;
}
cout<<number;
znak = file.peek();
if (znak=' ')
{
file.clear();
cout<<" ";
file.get(znak);
continue;
}
}
file.close();
I ogólnie wszystko działa tak jak powinno. Jednak zastanawia mnie dlaczego jak pozamieniam to w taki sposób:
while (!file.eof())
{
file>>number;
znak = file.peek();
if (znak=' ')
{
file.clear();
cout<<" ";
file.get(znak);
continue;
}
if(file.fail() || file.bad())
{
file.clear();
file.get();
continue;
}
cout<<number;
}
file.close();
To już nic się nie wyświetla. Może mi ktoś to wytłumaczyć dlaczego tak się dzieje?