Validierung numerischer Eingaben in C
Die Validierung von Benutzereingaben ist für jedes Programm, das numerische Werte akzeptiert, von entscheidender Bedeutung. In C besteht ein Ansatz zum Überprüfen, ob eine Eingabe numerisch ist, darin, die Failbit-Funktion des Eingabestreams cin zu verwenden.
Überprüfung der Eingabegültigkeit mit failbit
Wenn cin Wenn ein Fehler auf eine ungültige Eingabe stößt, wird das Failbit im Eingabestream gesetzt. Um diesen Zustand zu überprüfen, können Sie die folgende Syntax verwenden:
int n; cin >> n; if (!cin) // or if (cin.fail()) { // User did not input a number cin.clear(); // Reset failbit }
Wenn das Failbit gesetzt ist, bedeutet dies, dass die Eingabe keine gültige Zahl war. In diesem Fall sollten Sie das Failbit mit cin.clear() zurücksetzen, um den Fehlerstatus zu löschen.
Fehlerhafte Eingabe mit cin.ignore() löschen
Nach dem Löschen Nach dem Failbit müssen Sie die ungültige Eingabe aus dem Stream mit cin.ignore() verwerfen:
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // Skip bad input
Diese Zeile liest und verwirft effektiv alle Zeichen bis zum nächsten Zeilenumbruchzeichen ('n'). Löschen der fehlerhaften Eingabe.
Umgang mit ungültigen Eingaben
Sobald die fehlerhafte Eingabe gelöscht wurde, können Sie den Benutzer auffordern, die Eingabe erneut einzugeben. Dies kann mithilfe einer Schleife erfolgen, die so lange fortgesetzt wird, bis eine gültige Eingabe empfangen wird:
while (cin.fail()) { // User input was invalid cin.clear(); cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // Prompt user to re-enter input cout << "Invalid input. Please enter a valid number: "; cin >> n; }
Durch die Nutzung der Methoden failbit und cin.ignore() können Sie numerische Eingaben in C effektiv validieren und so sicherstellen, dass Ihr Programm sie verarbeitet sowohl gültige als auch ungültige Benutzereingaben ordnungsgemäß ausführen.
Das obige ist der detaillierte Inhalt vonWie validiere ich numerische Eingaben in C mithilfe des Failbits?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!