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

Pytanie odnośnie zadania z rozdziału 9

Ostatnio zmodyfikowano 2013-07-29 16:51
Autor Wiadomość
arti14
Temat założony przez niniejszego użytkownika
Pytanie odnośnie zadania z rozdziału 9
» 2013-07-29 15:59:11
Chciałem zrobić zadanie domowe z rozdziału 9 ( http://cpp0x.pl/kursy/Kurs-C++​/Poziom-1​/Obsluga-strumienia-wejscioweg​o​/12

Zrobiłem coś takiego:
C/C++
#include <iostream>
int main()
{
    float a;
    float b;
    float c;
   
    std::cout << "Podaj liczbe rzeczywista:";
    std::cin >> a;
    std::cin.clear();
    std::cin.sync();
    std::cout << "Podaj liczbe rzeczywista:";
    std::cin >> b;
    std::cin.clear();
    std::cin.sync();
    std::cout << "Podaj liczbe rzeczywista:";
    std::cin >> c;
    std::cin.clear();
    std::cin.sync();
    std::cout << "Liczba pierwsza to: " << a << " Wczytano? " << std::cin.good() << std::endl;
    std::cout << "Liczba druga to: " << b << " Wczytano? " << std::cin.fail() << std::endl;
    std::cout << "liczba trzecia to: " << c << " Wczytano? " << std::cin.good() << std::endl;
    return 0;
}

Wszystko działa przy podstawieniu danych z zadania, ale chyba chodziło o to, żeby działało zawsze. Aktualnie zawsze pokazuje, że 1 i 3 liczby są ok, ale 2 jest zła.

Zgaduję, że zgodnie ze wskazówką trzeba użyć bool, tylko że nie rozumiem, jak ją wstawić. Mógłby ktoś pokazać, jak trzeba to zrobić?
Szukałem tematów odnośnie tego zadania, ale ciągle tego nie zrozumiałem.
P-88992
jsc
» 2013-07-29 16:05:17
Masz użyć konstrukcji if.
P-88993
arti14
Temat założony przez niniejszego użytkownika
» 2013-07-29 16:14:40
Też myślałem, że może chodzić o if, tylko że ona jest dopiero w rozdziale 13.
P-88994
jsc
» 2013-07-29 16:18:16
Aha teraz spojrzałem... Musisz utworzyć zmienną bool, wczytać zmienną liczbową, sprawdzić flagę i dopiero wtedy czyścić bufor.
P-88995
arti14
Temat założony przez niniejszego użytkownika
» 2013-07-29 16:46:46
Ok, chyba już zrobiłem dobrze:
C/C++
#include <iostream>
int main()
{
    float a;
    float b;
    float c;
    bool x;
    bool y;
    bool z;
   
    std::cout << "Podaj liczbe rzeczywista:";
    std::cin >> a;
    x = std::cin.good();
    std::cin.clear();
    std::cin.sync();
    std::cout << "Podaj liczbe rzeczywista:";
    std::cin >> b;
    y = std::cin.good();
    std::cin.clear();
    std::cin.sync();
    std::cout << "Podaj liczbe rzeczywista:";
    std::cin >> c;
    z = std::cin.good();
    std::cin.clear();
    std::cin.sync();
    std::cout << "Liczba pierwsza to: " << a << " Wczytano? " << z << std::endl;
    std::cout << "Liczba druga to: " << b << " Wczytano? " << y << std::endl;
    std::cout << "liczba trzecia to: " << c << " Wczytano? " << z << std::endl;
    return 0;
}
P-88998
jsc
» 2013-07-29 16:51:05
No to możesz zamknąć temat:)
P-88999
« 1 »
  Strona 1 z 1