[lekcja 9 ] dziwny problem
Ostatnio zmodyfikowano 2012-01-19 20:55
nadowsky Temat założony przez niniejszego użytkownika |
[lekcja 9 ] dziwny problem » 2012-01-16 22:34:49 witam, używam deva i po kompilacji zadania domowego z leckci 9 ten kod działa zgodnie z opisem: KOD: #include <iostream> #include <conio.h> using namespace std; float a, b, c; int main() { cout << "Podaj 1 liczbe: "; cin >> a; bool spr = cin.good(); cin.clear(); cin.sync(); cout << "Podaj 2 liczbe: "; cin >> b; bool spr2 = cin.good(); cin.clear(); cin.sync(); cout << "Podaj 3 liczbe: "; cin >> c; bool spr3 = cin.good(); cin.clear(); cin.sync(); cout << "Liczba 1 = " << a << endl; cout << "wczytano ? " << spr << endl; cout << "Liczba 2 = " << b << endl; cout << "wczytano ? " << spr2 << endl; cout << "Liczba 3 = " << c << endl; cout << "wczytano ? " << spr3 << endl; getch(); } tzn strumien sie zeruje i po podaniu tekstu jako zmiennej jej wynik wyświetla sie jako 0 ale gdy wrzuce deklaracje zmiennych w blok miedzy{} to strumien nie czysci sie i wywyala jakieś bezsensowne liczy oto ten drugi kod który nie działa KOD: #include <iostream> #include <conio.h> using namespace std; int main() { float a, b, c; cout << "Podaj 1 liczbe: "; cin >> a; bool spr = cin.good(); cin.clear(); cin.sync(); cout << "Podaj 2 liczbe: "; cin >> b; bool spr2 = cin.good(); cin.clear(); cin.sync(); cout << "Podaj 3 liczbe: "; cin >> c; bool spr3 = cin.good(); cin.clear(); cin.sync(); cout << "Liczba 1 = " << a << endl; cout << "wczytano ? " << spr << endl; cout << "Liczba 2 = " << b << endl; cout << "wczytano ? " << spr2 << endl; cout << "Liczba 3 = " << c << endl; cout << "wczytano ? " << spr3 << endl; getch(); } prosze o pomoc i pozdrawiam |
|
BoBeR |
» 2012-01-17 10:11:44 U mnie wszystko działa, używam C::B. |
|
DejaVu |
» 2012-01-17 13:45:43 Wartości zmiennych będą przypadkowe ponieważ wystąpił błąd podczas wczytywania. Posiadasz jednak informację, że nastąpił błąd i nie możesz polegać na wartości, którą wczytywałeś.
Jedyną różnicą jaka występuje w tych programach to fakt, że zmienne a,b,c są globalne, a zatem posiadają nadaną wartość początkową równą 0. Tej własności nie posiadają zmienne zadeklarowane lokalnie, a w konsekwencji posiadają przypadkową wartość (bo im nie nadałeś żadnej wartości). |
|
nadowsky Temat założony przez niniejszego użytkownika |
» 2012-01-19 20:55:16 Dziękuje i zamykam |
|
« 1 » |