Beim Arbeiten mit Benutzereingaben muss unbedingt sichergestellt werden, dass die eingegebenen Daten dem erwarteten Format entsprechen. In Fällen, in denen Ganzzahlwerte erforderlich sind, kann es vorkommen, dass Benutzer versehentlich nicht numerische Zeichen eingeben.
Dieser Artikel bietet eine Lösung zur Behebung dieses Problems, indem überprüft wird, ob die Eingabe aus dem Standardeingabestream cin eine Ganzzahl ist oder nicht. Hier ist eine detaillierte Aufschlüsselung der Implementierung:
int x; cin >> x; if (cin.fail()) { // Not an int. }
Die Funktion cin.fail() überprüft den Status des Eingabestreams. Wenn die Eingabeoperation nicht erfolgreich war (z. B. aufgrund einer ungültigen Eingabe), gibt die Funktion „true“ zurück und setzt das Failbit-Flag. Andernfalls wird false zurückgegeben.
Mit diesem Ansatz können Sie bestimmen, ob die Eingabe eine Ganzzahl ist oder nicht. Ist dies nicht der Fall, können Sie geeignete Maßnahmen ergreifen, z. B. den Benutzer auffordern, eine gültige Ganzzahl erneut einzugeben.
Für Szenarien, in denen der Eingabestream Nicht-Int-Zeichen gefolgt von Ganzzahlen enthält, können Sie die folgende Schleife verwenden :
int x; while (cin.fail()) { cin.clear(); cin.ignore(256, '\n'); cin >> x; }
Die Funktion cin.clear() löscht das Failbit-Flag, während cin.ignore(256, 'n') die verbleibenden Eingabezeichen bis zum überspringt erstes Zeilenumbruchzeichen oder 256 Zeichen, je nachdem, was zuerst eintritt.
Wenn der Benutzer alternativ eine nicht ganzzahlige Zeichenfolge eingeben darf, können Sie die Eingabe als Zeichenfolge lesen, prüfen, ob sie nur Zahlen enthält, und sie in konvertieren eine Ganzzahl. Dieser Ansatz eignet sich jedoch möglicherweise nicht für Fälle, in denen Gleitkommazahlen erwartet werden.
Zusammenfassend lässt sich sagen, dass Sie mit dem bereitgestellten Codeausschnitt überprüfen können, ob die Eingabe aus dem Standardeingabestream eine Ganzzahl ist. Wenn nicht, können Sie die Situation entsprechend behandeln und sicherstellen, dass in Ihrem Programm nur gültige Ganzzahlwerte akzeptiert werden.
Das obige ist der detaillierte Inhalt vonWie kann ich Ganzzahleingaben des Benutzers in C effektiv validieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!