Problemstellung
In einem C-Programm ist es entscheidend, sicherzustellen, dass Benutzereingaben erfolgen liegt im erwarteten Format vor, insbesondere bei der Durchführung mathematischer Operationen. In diesem Artikel wird beschrieben, wie Sie feststellen können, ob die vom Benutzer bereitgestellte Eingabe eine Ganzzahl ist. Wenn die Eingabe keine Ganzzahl ist, fordert das Programm den Benutzer auf, eine gültige Ganzzahl erneut einzugeben.
Lösung
Es gibt zwei Hauptansätze, um Benutzereingaben zu überprüfen als ganze Zahl:
1. Mit cin.fail():
2. Verwenden von std::getline und String-Manipulation:
Implementierung
Unten finden Sie einen Codeausschnitt, der die std::getline- und String-Manipulation implementiert Ansatz:
#include <iostream> #include <string> int main() { std::string theInput; int inputAsInt; std::getline(std::cin, theInput); while(std::cin.fail() || std::cin.eof() || theInput.find_first_not_of("0123456789") != std::string::npos) { std::cout << "Error" << std::endl; if( theInput.find_first_not_of("0123456789") == std::string::npos) { std::cin.clear(); std::cin.ignore(256,'\n'); } std::getline(std::cin, theInput); } std::string::size_type st; inputAsInt = std::stoi(theInput,&st); std::cout << inputAsInt << std::endl; return 0; }
Dieser Code fordert den Benutzer kontinuierlich zur Eingabe einer Ganzzahl auf, bis eine gültige Ganzzahl eingegeben wird. Es behandelt Situationen, in denen der Benutzer nicht numerische Zeichen eingibt oder leere Eingaben vornimmt.
Das obige ist der detaillierte Inhalt vonWie kann ich ganzzahlige Benutzereingaben in C effektiv überprüfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!