Sprawdzanie poprawnosci wprowadzonych danych na linuxie

Sprawdzanie poprawnosci wprowadzonych danych na linuxie
Z2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 20
0

Witam. Wiem że problem jest zapewne dla was błahy ale proszę o wskazówkę/pomoc
Dlaczego ten krótki kod nie walidyzuje wprowadzanych danych tylko tworzy się nieskończona pętla gdy zamiast liczby wpisany zostanie jakiś znak np 'a'?
Dodam że mój OS to Linux

Kopiuj
#include <iostream>
using namespace std;
int main()
{
int liczba;
cout<<"Podaj liczbe"<<endl;
cin>>liczba;


while(!(cin>>liczba))
{
    cout<<"Podales zly format danych"<<endl;
    cin.clear();
    cin.ignore();
    cin>>liczba;

}

return 0;
} 
Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
1
Kopiuj
#include <iostream>
using namespace std;

int main()
  {
   int liczba;
   cout<<"Podaj liczbe"<<endl;
   while(!(cin>>liczba))
     {
      cout<<"Podales zly format danych"<<endl;
      cin.clear();
      cin.ignore();
     }
   return 0;
  }

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.