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

Czyszczenie danych wejścia rozdział 33

Ostatnio zmodyfikowano 2019-01-01 20:52
Autor Wiadomość
Mavannkas
Temat założony przez niniejszego użytkownika
Czyszczenie danych wejścia rozdział 33
» 2019-01-01 15:31:47
Podczas robienia zadania wpadłem na pomysł zabezpieczenia programu przed niechcianymi znakami i wymyśliłem to i okazało się, że wszystko działa. Ale czy to dobre rozwiązanie? I mógłby mi ktoś wytłumaczyć dokładnie dlaczego to działa ponieważ nie jestem pewny tego czy dobrze to rozumiem. Ewentualne uwagi co do reszty kodu mile widziane :)
Z góry dziękuję za odpowiedź.
 
C/C++
bool sumowanko( std::string sciezka )
{
    int a, wynik = 0;
    std::ifstream plik;
    plik.open( sciezka.c_str() );
    if( !plik.good() )
         return true;
   
    for(; true; )
    {
       
        if( !plik.good() )
        {
            std::cout << "Suma to: " << wynik;
            break;
        }
        else
        {
            plik >> a;
            if( !plik.good() )
            {
                plik.clear();
                plik.ignore( 1 );
                continue;
            }
            wynik += a;
        }
    }
    return false;
}
P-173384
pekfos
» 2019-01-01 16:28:50
Wygląda dobrze. Działa bo jeśli wystąpi błąd w ignore(), to wyczerpałeś dane z pliku jakie można było oczytać. To jedyny przypadek, żeby wejść do warunku wypisującego sumę.
P-173385
Mavannkas
Temat założony przez niniejszego użytkownika
» 2019-01-01 20:32:40
Pefkos a masz może pomysł na inne ew. lepsze rozwiązanie tego problemu?
P-173388
pekfos
» 2019-01-01 20:52:33
P-173389
« 1 »
  Strona 1 z 1