Wpis z mikrobloga

#programowanie

Mam pytanie odnośnie tego kodu. Skąd linie cin.good i cin.fail wiedzą do czego się sukces lub porażka odnosi? Robię właśnie pewien kurs C++ i tutaj mi "czegoś brakuje" do załapania czemu dzieje się tak a nie inaczej.

#include

int main()

{

int a;

float b;

std::cout << "Podaj liczbe calkowita: ";

std::cin >> a;

std::cout << "Czy udalo sie wczytac? " << std::cin.good() << std::endl;

std::cout << "Czy cos nawalilo? " << std::cin.fail() << std::endl;

std::cout << "Podaj liczbe rzeczywista: ";

std::cin >> b;

std::cout << "Czy udalo sie wczytac? " << std::cin.good() << std::endl;

std::cout << "Czy cos nawalilo? " << std::cin.fail() << std::endl;

std::cout << "Liczba a = " << a << std::endl;

std::cout << "Liczba b = " << b << std::endl;

return 0;

}
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Wiceps: Czyli dyrektywa ta odnosi się bezpośrednio do ostatniego wprowadzenia danych, tak? Czyli po prostu do poprzedniego cin'a. Mogliby cholera takie rzeczy precyzować w tych kursach, bo niekiedy takie niedopełnienie obrazu może doprowadzić do problemów ze zrozumieniem. A nie zawsze to co się domyślamy, że "być może odnosi się do ostatniego elementu" będzie tym co faktycznie się dzieje.
  • Odpowiedz
@Yahoo_: Czarno widzę korzystanie z czegoś, czego nie rozumiemy jak działa... To nie samochód, że jest zaprojektowany by być idiotoodporny.
  • Odpowiedz
@Khaine: Jeśli dobrze pamietam to cin ustawia sobie wewnętrznie jakąś zmienną która mówi czy się udało czy nie, a metoda good() sprawdza tę właśnie zmienną.
  • Odpowiedz