Witam
Próbuje napisać program który ma wypisać podaną przeze mnie liczbę, ale ma zwracać wszystko co nie jest liczbą. Program na pierwszy rzut oka dla mnie jest bardzo prosty lecz nie do końca mogę sobie z nim poradzić. Napisałem coś takiego:
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{ int liczba ;
cout<<"Podaj liczbe: ";
cin>>liczba;
if(!(cin>>liczba)) // jesli strumien jest w bledny
do
{
cout<<"Niepoprawny znak. Podaj liczbe!: ";// komunikat błędu
cin.clear(); //kasowanie flagi błędu strumienia
cin.sync(); //kasowanie zbędnych znaków z bufora
}
while(!(cin>>liczba));
cout<<"Podana liczba to: "<<liczba<< endl;
system("pause");
return 0;
}
Program działa tak prawie jak chciałem ale jeśli wpisuje liczbę to nic się nie dzieje dopiero za drugim razem działa. Gdy wpisuje pierwsze jakąś literę to wszystko jest w porządku od razu później po wpisaniu liczby wyświetla mi ją. Próbowałem już robić to przez if else, samo while ale za każdym razem to samo ;/ Może ktoś pomóc ?