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

Problem przy wprowadzeniu nieprawidłowej zmiennej poz.1 roz.9

Ostatnio zmodyfikowano 2017-04-29 00:13
Autor Wiadomość
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
P-160581
karambaHZP
» 2017-04-28 20:18:48
Jesli vs jest młodszy niż 2013 zastosuj
std::cin.ignore()
P-160582
thomson92
Temat założony przez niniejszego użytkownika
» 2017-04-29 00:13:29
Pomogło, dzięki.
P-160592
« 1 »
  Strona 1 z 1