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

[praca domowa] lekcja 15, zad1

Ostatnio zmodyfikowano 2012-02-12 23:30
Autor Wiadomość
Kelemes
Temat założony przez niniejszego użytkownika
[praca domowa] lekcja 15, zad1
» 2012-02-03 17:54:09
Cześć
Mam problem z tym zadaniem. Zrobiłem program, ale za nic nie potrafię osiągnąć celu, czyli braku zapętlania się w nieskończoność przy błędzie. Nie mam pojęcia w którym momencie czyścić kanał wejściowy. Pomożecie?:)
C/C++
#include <iostream>
#include <cstdio>
int main()
{
    do
    {
        std::cin.sync();
        std::cin.clear();
        std::cout << "podaj liczbe" << std::endl;
        int liczba;
        std::cin >> liczba;
        if( std::cin.fail() == 1 ) std::cout << "BLAD" << std::endl;
        else std::cout << "oto twoja liczba: " << liczba << std::endl;
       
    }
    while( std::cin.fail() == 1 );
   
    return 0;
}
P-50074
jsc
» 2012-02-03 17:58:47
Chyba dosyć tworzenia tych samych tematów.
P-50075
Kelemes
Temat założony przez niniejszego użytkownika
» 2012-02-03 18:00:20
Przeczytałem wiele z nich i wskazówki z żadnego mi nie pomogły. Chyba, że całkiem bym zmienił mój pomysł
P-50076
Hoop300
» 2012-02-03 18:17:28
po co ci ten fragmęt "#include <cstdio>??? wywal to
zamien miejscami cin.clear(); cin.sync();
i nie wiem po co " == 1" po cin.fail()
a na koncu powinno byc !cin.good() a nie fail()
       
P-50077
Kelemes
Temat założony przez niniejszego użytkownika
» 2012-02-03 23:20:33
kurcze, zamienione dwa wyrazy, których kolejność wydawała mi się obojętna :D bardzo dziękuję. Tylko jeszcze jedno pytanie zamienienie fail na !good jakie ma znaczenie? usprawnia kod czy to tak się po prostu utarło?
P-50099
DejaVu
» 2012-02-04 00:09:19
W zasadzie to:
C/C++
if( !cin.good() == cin.fail() )
Powyższy fragment kodu zawsze zwraca prawdę bo to jest w praktyce to samo ;p
P-50101
Hoop300
» 2012-02-04 00:10:50
tak na prawde to chyba nie ma znaczenia chyba gdzies zobaczyłem !cin.good i tak jakos napisałem
P-50102
Elaine
» 2012-02-04 14:33:42
W zasadzie to:
C/C++
if( !cin.good() == cin.fail() )
Powyższy fragment kodu zawsze zwraca prawdę bo to jest w praktyce to samo ;p
To nie jest to samo, lewa strona to
true
, jeśli ustawiony jest tylko
eofbit
, prawa w tym samym wypadku wynosić będzie
false
.
P-50129
« 1 » 2
  Strona 1 z 2 Następna strona