Zadanie domowe nr 9. Problem.
Ostatnio zmodyfikowano 2012-05-03 12:46
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ę :)
#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; }
|
|
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... |
|
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 |
|
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: |
|
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 :)
#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; }
|
|
« 1 » |