Problem przy wprowadzeniu nieprawidłowej zmiennej poz.1 roz.9
Ostatnio zmodyfikowano 2017-04-29 00:13
thomson92 Temat założony przez niniejszego użytkownika |
Problem przy wprowadzeniu nieprawidłowej zmiennej poz.1 roz.9 » 2017-04-28 19:12:28 Zgodnie z zadaniem chciałem napisać taki program: "Napisz program, który wczyta trzy liczby rzeczywiste, a na końcu programu je wszystkie wypisze. Zadbaj o to, by bufor strumienia wejściowego był za każdym razem czyszczony. Wynik końcowy powinien również zawierać informacje czy wczytanie danej liczby się powiodło." Jeżeli wczytywane wartości są zgodne z zadeklarowaną zmienną wszystko działa, jednak jeżeli przypisuję literę dla zmiennej np. typu float to program od razu się wyłącza i nie daje możliwości wprowadzania kolejnych danych. Pracuję w Visual Studio.
#include "stdafx.h" #include <iostream> #include <cstdio>
using namespace std;
int main() { float a; float b; float c;
cout << "wprowadz pierwsza liczbe: "; cin >> a;
bool asukces = cin.good();
cin.clear(); cin.sync();
cout << "wprowadz druga liczbe: "; cin >> b;
bool bsukces = cin.good();
cin.clear(); cin.sync();
cout << "wprowadz trzecia liczbe: "; cin >> c;
bool csukces = cin.good();
cin.clear(); cin.sync();
cout << "first try: " << a << " udalo sie?: " << asukces << endl; cout << "second try: " << b << " udalo sie?: " << bsukces << endl; cout << "third try: " << c << " udalo sie?: " << csukces << endl;
int pause; pause = 0; cin >> pause;
return 0; }
Bardzo byłbym wdzięczny za wskazówkę co przeoczyłem. Pozdrawiam |
|
karambaHZP |
» 2017-04-28 20:18:48 Jesli vs jest młodszy niż 2013 zastosuj std::cin.ignore() |
|
thomson92 Temat założony przez niniejszego użytkownika |
» 2017-04-29 00:13:29 Pomogło, dzięki. |
|
« 1 » |