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

Lekcja 34 Zadanie domowe 1

Ostatnio zmodyfikowano 2014-08-31 14:45
Autor Wiadomość
dark488
Temat założony przez niniejszego użytkownika
» 2014-08-31 14:08:48
Gdy program natrafi na znak, nie liczbę, próbowałem wczytywać go do osobnej zmiennej ze znakami a liczby do osobnej, jednak i tak było źle. W przykładzie z lekcji 34 użyto break, nie wiem jednak gdzie mógłbym go wstawić.
P-116458
pekfos
» 2014-08-31 14:21:03
Powinieneś raczej użyć ignore(). Nie masz przerwać pętli, po napotkaniu błędnych danych.
P-116460
dark488
Temat założony przez niniejszego użytkownika
» 2014-08-31 14:45:47
Omg, a ja po przeczytaniu jednej z poprzednich lekcji myślałem, że ignore() tyczy się tylko Linuksa...
Trzeba było sie nieźle napocić, ale grunt, że wszystko działa jak należy.
Wrzucam tutaj prawidłowy kod pętli, gdyby ktoś miał podobny problem:

C/C++
while( !plik.eof() )
{
    plik >> liczby;
    if( plik.bad() )
    {
        cout << "Nastapil blad sprzetowy!" << endl;
        plik.close();
        return false;
    }
    else
    if( plik.fail() )
    {
        plik.clear();
        plik.ignore();
        continue;
    }
   
    cout << liczby << " ";
    suma += liczby;
}
P-116461
1 « 2 »
Poprzednia strona Strona 2 z 2