wie um zu überprüfen, ob die Benutzereingabe einer Ganzzahl

Ich zu meinem Programm, wenn der Benutzer Eingaben eine ganze Zahl und nicht ein Zeichen oder string.
Charakter ist nicht so schlimm, da es pratically eine ganze Zahl, aber wenn der Benutzer eine Folge von Zeichen, dann geht es einfach Nüsse.

Ich habe diese Funktion

int* ask_lung(int* lung)
{
int tmp; //length of a word

cout << "Inserisci la lunghezza della parola da indovinare: ";
cin >> tmp;

if(cin)
{
    //Se i è uguale a o minore di 0 allora ritorna all'inizio

    if(tmp <= 0)
    {
        cout << endl << "\tNon puoi inserire 0." << endl << endl;
        ask_lung(lung);
    }
    else
    {
                    //the error is about here, when it reaches this part of the code it keeps showing the first line "Inserisci la lunghezza della parola da indovinare: "
        *lung = tmp;
    }
}
else ask_lung(lung);

return lung;
}
Was bedeutet das tun/tun sollen ?
while( ! (cin >> myInt)){ std::cout << "Ihre Eingabe war nicht ein "int" << std::endl } Oder verstehe ich etwas falsch?!
wenn tmp ist <= 0 oder ein Zeichen oder eine Zeichenfolge sollte es drucken ein Fehler und bitten nochmals für den input
Warum es nicht in der Schleife, statt es rekursiv? I. e. while (!(cin >> tmp)) { /* Prompt user to enter a proper number */ }. Auch, wenn Sie nicht wollen, dass die Zahl negativ sein, erklären tmp zu unsigned.
mit einer while-Schleife, nur es hält zeigt die Fehler, die ich bin Eingebung, wie wenn der Benutzer hält die Eingabe falsch

InformationsquelleAutor DomeWTF | 2012-11-30

Schreibe einen Kommentar