jak sprawdzić, czy jest liczbą

0
int ile;
    cin>>ile;

jeśli wpiszę jakąś literkę (albo stringa całego) oczywiście c++ przyjmie, bo można char przeliczyć na liczby całkowite. czy jest jakaś funkcja, która mi sprawdzi, czy wartość ile jest liczbą? czy muszę sprawdzać kod ASCII dla każdego znaku?

0

#include <iostream.h>
#include <ctype.h> //

/***/
main()
{
char nazwa[200] ;
float x ;
int zwiastun ;
cout << "napisz liczbe lub nazwe : " ;
zwiastun = cin.peek() ; //

 if(isdigit(zwiastun) ){                           //
      cin >> x ;                                     //
      cout << "Byla to liczba : " << x << endl ;
 }else {
      cin >> nazwa ;                                 //
      cout << "Byla to nazwa : " << nazwa << endl ;
 }

}

0

hmm, dzięki, ale ja chciałbym to w kółko robić i coś nie potrafię z bufora usuwać

using namespace std; 
main()
{
float x ;
int zwiastun ;
     cout << "napisz liczbe lub nazwe : " ;
     zwiastun=cin.peek();
     while(!isdigit(zwiastun)){
          cout<<"podaj jeszcze raz: ";
          cin.clear();
     }    
     cin >> x ;                                     //
     cout << "Byla to liczba : " << x << endl ;
     system("pause");
} 
0

funkcja clear() nie słuzy do opóżniania struminiea
spróbuje jesłi o to ci chodzi
zrobić coś takiego do opróżniia

while(cin.get());

możesz spróbować to z innymi funkcjami typu getline()

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0