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

[Lekcja 9] Jak użyć zmiennej bool?

Ostatnio zmodyfikowano 2013-05-12 21:37
Autor Wiadomość
PTa4
Temat założony przez niniejszego użytkownika
[Lekcja 9] Jak użyć zmiennej bool?
» 2013-04-29 17:50:14
C/C++
#include <iostream>

using namespace std;

int main()
{
    float a, b, c;
   
    cin.clear();
    cin.sync();
   
    cout << "Wprowadz pierwsza liczbe rzeczywista.";
    cin >> a;
    /*cout << "Czy wczytanie liczby sie powiodlo?" << cin.good() << endl;
            cout << "Czy wystapil jakis blad?" << cin.fail() << endl;*/
   
    cin.clear();
    cin.sync();
   
    cout << "Wprowadz druga liczbe rzeczywista.";
    cin >> b;
    /*cout << "Czy wczytanie liczby sie powiodlo?" << cin.good() << endl;
            cout << "Czy wystapil jakis blad?" << cin.fail() << endl;*/
   
    cin.clear();
    cin.sync();
   
    cout << "Wprowadz trzecia liczbe rzeczywista.";
    cin >> c;
    /*cout << "Czy wczytanie liczby sie powiodlo?" << cin.good() << endl;
            cout << "Czy wystapil jakis blad?" << cin.fail() << endl;*/
   
    cout << "Liczba pierwsza to: " << a << endl;
    cout << "Liczba druga to: " << b << endl;
    cout << "Liczba trzecia to: " << c << endl;
   
    return 0;
}


Jak użyć bool'a, by na końcu tylko pokazywało czy prawidłowo zostało wczytane dane czy nie? Użyłem w komentarzach te linijki które od razu sprawdzają, chcę by było jak w treści zadania by pokazywało to po podaniu liczby następnie pytanie "Wczytano?" I wyskakuje 1 lub 0.
P-81516
Berux
» 2013-04-29 17:54:57
Po wczytaniu przypisujesz sobie do zmiennej typu bool tą informację (czy liczbę/znak/itp. wczytano poprawnie), a potem wypisujesz jej wartość:
C/C++
bool blad;
int a;
//...
cin >> a;
blad = cin.good();
//...

cout << "Czy wczytano?: " << blad << endl;

P-81519
PTa4
Temat założony przez niniejszego użytkownika
» 2013-04-29 19:48:10
Zawsze wyświetla jedynkę nawet gdy się wprowadzi błędnie.
P-81536
Berux
» 2013-04-29 20:48:44
Pokaż kod.
P-81549
PTa4
Temat założony przez niniejszego użytkownika
» 2013-04-29 22:34:00
C/C++
#include <iostream>

using namespace std;

int main()
{
    float a, b, c;
    bool blad;
   
    blad = cin.good();
   
    cin.clear();
    cin.sync();
   
    cout << "Wprowadz pierwsza liczbe rzeczywista.";
    cin >> a;
    /*cout << "Czy wczytanie liczby sie powiodlo?" << cin.good() << endl;
        cout << "Czy wystapil jakis blad?" << cin.fail() << endl;*/
   
    cin.clear();
    cin.sync();
   
    cout << "Wprowadz druga liczbe rzeczywista.";
    cin >> b;
    /*cout << "Czy wczytanie liczby sie powiodlo?" << cin.good() << endl;
        cout << "Czy wystapil jakis blad?" << cin.fail() << endl;*/
   
    cin.clear();
    cin.sync();
   
    cout << "Wprowadz trzecia liczbe rzeczywista.";
    cin >> c;
    /*cout << "Czy wczytanie liczby sie powiodlo?" << cin.good() << endl;
        cout << "Czy wystapil jakis blad?" << cin.fail() << endl;*/
   
    cout << "Liczba pierwsza to: " << a << " Wczytano? " << blad << endl;
    cout << "Liczba druga to: " << b << " Wczytano? " << blad << endl;
    cout << "Liczba trzecia to: " << c << " Wczytano? " << blad << endl;
   
    return 0;
}
P-81562
Forczek
» 2013-04-30 09:59:25
Jak sie nie myle to sprawdzasz to na początku, a trzeba po wprowadzeniu liczby. Zmień z good na fail.
P-81569
Berux
» 2013-04-30 12:15:22
@Forczek

Gdyby zmienił na fail, to musiał by wyświetlić "znegowaną" wartość obiektu bool.

@PTa4

Utwórz sobie tyle różnych zmiennych ile razy wczytujesz wartość(np. blad1, blad2, blad3) i po wczytywaniu wpisz odpowiednio:
C/C++
blad1 = cin.good();
//lub
blad2 = cin.good();
//lub
blad3 = cin.good();

Potem wypisz wartość tych obiektów:
C/C++
cout << "Liczba pierwsza to: " << a << " Wczytano? " << blad1 << endl;
cout << "Liczba druga to: " << b << " Wczytano? " << blad2 << endl;
cout << "Liczba trzecia to: " << c << " Wczytano? " << blad3 << endl;

Zwróć uwagę, że nie wypisuję tu za każdym razem wartości jednej zmiennej, tylko trzech, bo każda odpowiada za inne wczytanie.
P-81575
Forczek
» 2013-04-30 14:24:10
Blad1 = czy poprawne. A jak poprawne to równe 1. Daj fail to jeżeli błąd to masz 1
P-81588
« 1 » 2 3
  Strona 1 z 3 Następna strona