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

P1 R9 Błąd z zadaniem domowym

Ostatnio zmodyfikowano 2012-12-02 22:39
Autor Wiadomość
Informator1123
Temat założony przez niniejszego użytkownika
P1 R9 Błąd z zadaniem domowym
» 2012-12-02 22:01:44
Przy robieniu zadania domowego utworzyłem program o następującej treści:
C/C++
#include <iostream>
int main()
{
    float a;
    float b;
    float c;
    std::cin >> a;
    std::cin.clear();
    std::cin.sync();
    std::cin >> b;
    std::cin.clear();
    std::cin.sync();
    std::cin >> c;
    std::cin.clear();
    std::cin.sync();
    std::cout << "Liczba pierwsza to:" << a << std::endl;
    std::cout << "Wczytano? " << std::cin.good() << std::endl;
    std::cout << "Liczba druga to:" << b << std::endl;
    std::cout << "Wczytano? " << std::cin.good() << std::endl;
    std::cout << "Liczba trzecia to:" << c << std::endl;
    std::cout << "Wczytano? " << std::cin.good() << std::endl;
    return 0;
}
Problem leży w tym, że zawsze w potwierdzeniu wychodzi wynik pozytywny, niezależnie od tego co tam wpiszemy. Co robić?
P-70262
Mrovqa
» 2012-12-02 22:36:42
Zauważ, iż czyścisz flagi błędu strumienia i potem je sprawdzasz. Zawsze powinno wypisać 1 :) Po wczytaniu, ale przed czyszczeniem flag błędu zapisz wynik wczytywania do zmiennej pomocniczej (typu bool). Potem tylko ją wypisz.
P-70266
whiskas
» 2012-12-02 22:39:05
Dodaj zmienna typu bool np sukces1, sukces,,2 sukces3 i po każdym wprowadzeniu danych do zmiennej daj sukces=cin.good() i dopiero po tej linijce cin.clear() i cin.sync()
P-70268
« 1 »
  Strona 1 z 1