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

[Kurs C++, Lekcja 9] Jak sprawdzić, czy dane wejściowe były poprawne?

Ostatnio zmodyfikowano 2011-08-10 21:29
Autor Wiadomość
mati640
Temat założony przez niniejszego użytkownika
[Kurs C++, Lekcja 9] Jak sprawdzić, czy dane wejściowe były poprawne?
» 2011-08-10 15:32:45
Witam,
mam problem z zadaniem domowym

C/C++
#include <iostream>
#include <cstdio>
int main()
{
    float a;
    bool b;
    float c;
   
    bool d;
    bool e;
   
    d = std::cin.good();
    e = std::cin.fail();
   
   
   
    std::cin.clear();
    std::cin.sync();
    std::cout << "Podaj pierwsza liczbe: ";
    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::cin.clear();
    std::cin.sync();
    std::cout << "Podaj druga liczbe: ";
    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::cin.clear();
    std::cin.sync();
    std::cout << "Podaj trzecia liczbe: ";
    std::cin >> c;
   
    std::cout << "Czy udalo sie wczytac?" << std::cin.good() << std::endl;
    std::cout << "Czy cos nawalilo?" << std::cin.fail() << std::endl;
   
    std::cout << "Pierwsza liczba: " << a << " Wczytano? " << d << std::endl;
    std::cout << "Druga liczba: " << b << " Wczytano? " << e << std::endl;
    std::cout << "Trzecia liczba: " << c << " Wczytano? " << d << std::endl;
   
    return 0;
}

 - to pokazuje program po wpisaniu wszystkiego


Chodzi mi o to, że na końcu gdzie podane jest "Wczytano?" to ja myślę, że automatycznie powinno pojawiać sie 1 lub 0, 1 odpowiada za dobrze 0 za źle. Ja to zrobiłem w sposób manualny. I gdybym wpisał inne liczby. to już by nie zadziałało. Proszę o pomoc, aby ktoś napisał prawidłowy kod do tej funkcji czy prawidłowo wczytano.
Z góry dzięki.
P-38690
SeaMonster131
» 2011-08-10 15:47:29
Daj 3 zmienne bool, i po każdym wczytaniu liczby spr czy udało się ją wczytaj i wtedy przypisz odpowiednią wartość do tych zmiennych (dla każdej liczby jedna zmienna, czyli 3 zmienne bool).
P-38691
mati640
Temat założony przez niniejszego użytkownika
» 2011-08-10 15:58:01
Wyszło mi przez przypadek, znalazłem błąd usunąłem go i nadal nie wychodzi, nie wiem czy dobrze robię to co napisałeś.
P-38694
SeaMonster131
» 2011-08-10 21:12:37
To pokaż aktualny kod :)
P-38730
mati640
Temat założony przez niniejszego użytkownika
» 2011-08-10 21:27:26
Kręciłem trochę w kodzie, ale nic nie wychodziło i zostawiłem tak:
Tylko to nadal jest źle.

C/C++
#include <iostream>
#include <cstdio>
main()
{
    float a;
    float b;
    float c;
   
    bool d;
    bool e;
    bool f;
   
    std::cin.clear();
    std::cin.sync();
    std::cout << "Podaj pierwsza liczbe: ";
    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::cin.clear();
    std::cin.sync();
    std::cout << "Podaj druga liczbe: ";
    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::cin.clear();
    std::cin.sync();
    std::cout << "Podaj trzecia liczbe: ";
    std::cin >> c;
   
    std::cout << "Czy udalo sie wczytac?" << std::cin.good() << std::endl;
    std::cout << "Czy cos nawalilo?" << std::cin.fail() << std::endl;
   
    std::cout << "Pierwsza liczba: " << a << " Wczytano? " << d << std::endl;
    std::cout << "Druga liczba: " << b << " Wczytano? " << e << std::endl;
    std::cout << "Trzecia liczba: " << c << " Wczytano? " << f << std::endl;
   
    return 0;
}
P-38732
SeaMonster131
» 2011-08-10 21:29:56
Powiedziałem wyraźnie, żebyś spr czy udało sie wczytać liczbe po każdym wpisaniu.. Np:

C/C++
float a;
bool liczba_a;

cin >> a;
liczba_a = cin.good();
P-38733
« 1 »
  Strona 1 z 1