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

Zadanie domowe nr 9. Problem.

Ostatnio zmodyfikowano 2012-05-03 12:46
Autor Wiadomość
poprek
Temat założony przez niniejszego użytkownika
Zadanie domowe nr 9. Problem.
» 2012-05-03 00:03:10
Mam problem a mianowicie nie wyświetla mi komunikatu o załadowanych liczbach tak jak było w przykładzie podanym w zadaniu,a co najważniejsze nie wiem czy kod jest napisany prawidłowo. Proszę o wyrozumiałość, dopiero się uczę :)



C/C++
#include <iostream>

using namespace std;

int main()
{
    float a = 13.3;
    float b = 0;
    float c = 33.22;
   
   
   
   
    cout << "Podaj pierwsza liczbe" << endl;
    cin >> a;
    cin.clear();
    cin.sync();
   
   
    cout << "Podaj druga liczbe " << endl;
    cin >> b;
    cin.clear();
    cin.sync();
   
   
    cout << "Podaj trzecia liczbe " << endl;
    cin >> c;
    cin.clear();
    cin.sync();
   
   
    cout << "Pierwsza liczba to = " << a << " Udalo sie??" << cin.good() << endl;
   
   
    cout << "Druga liczba to = " << b << " Udalo sie??" << cin.good() << endl;
   
   
   
    cout << "Trzecia liczba to = " << c << " Udalo sie??" << cin.good() << endl;
   
   
   
    return 0;
}
P-55830
xevuel
» 2012-05-03 07:40:25
Program prawidłowo wyświetla wszystkie liczby... Spróbuj uruchomić go przez cmd (albo dodać funkcję getch() z pliku conio.h przed instrukcją return) :)

Nie wiem tylko czemu inicjujesz zmienne takimi dziwnymi liczbami, no i czemu robisz takie odstępy w kodzie...
P-55839
poprek
Temat założony przez niniejszego użytkownika
» 2012-05-03 10:00:08
Przepraszam za zmienne to był tylko test zapomniałem je skasować :) Tak wiem że program poprawnie wyświetla liczby ale nie poprawnie wyświetla zapytanie czy udało się załadować. Bo według zadania które było podane dane wejściowe  powinny wyglądać w ten sposób: 13.3;tak 123;33.22nie, a dane wyjściowe tak

Liczba pierwsza to: 13.3. Wczytano? 1.
Liczba druga liczba to: 0. Wczytano? 0.
Liczba trzecie liczba to: 33.22. Wczytano? 1.

Ja wprowadzam te same dane. Pojawia się problem kiedy jest wczytywana druga liczba. Wpisuje: tak 123 i pojawia się zero ale też powinno wyskoczyć zapytanie zaraz za liczbą: Wczytano?? 0, a w moim programie wyskakują wszędzie zapytania wczytano? 1.

Liczba pierwsza to: 13.3. Wczytano? 1.
Liczba druga liczba to: 0. Wczytano? 1. <<<<<<<<<
Liczba trzecie liczba to: 33.22. Wczytano? 1.


 Nie wiem jak to zrobić.


PS. Odstępy mam takie duże bo lepiej mi się wtedy na program patrzy xD Przyzwyczajenie z lekcji :P
P-55841
xevuel
» 2012-05-03 11:08:32
Bo
cin.good()
 odnosi się do ostatniego wczytania danych, które ty masz prawidłowe. Dodatkowo, nawet gdybyś w 3 liczbie podał "tak", też wyświetli się 1, a wiesz czemu? Oto winowajca:
C/C++
cin.clear();
cin.sync();
P-55843
poprek
Temat założony przez niniejszego użytkownika
» 2012-05-03 12:46:46
Po modyfikacji uzyskałem to co chciałem :). Skorzystałem z
bool aZaladowane = cin.good();
Dziękuje za pomoc :)

C/C++
#include <iostream>

using namespace std;

int main()
{
    float a;
    float b;
    float c;
   
   
   
   
    cout << "Podaj pierwsza liczbe" << endl;
    cin >> a;
    bool aZaladowane = cin.good();
    cin.clear();
    cin.sync();
   
    cout << "Podaj druga liczbe " << endl;
    cin >> b;
    bool bZaladowane = cin.good();
    cin.clear();
    cin.sync();
   
   
   
    cout << "Podaj trzecia liczbe " << endl;
    cin >> c;
    bool cZaladowane = cin.good();
    cin.clear();
    cin.sync();
   
   
   
    cout << "Pierwsza liczba to = " << a << " Wczytano? " << aZaladowane << endl;
   
   
   
    cout << "Druga liczba to = " << b << " Wczytano? " << bZaladowane << endl;
   
   
   
    cout << "Trzecia liczba to = " << c << " Wczytano? " << cZaladowane << endl;
   
   
   
    return 0;
}
P-55846
« 1 »
  Strona 1 z 1