Heim > Backend-Entwicklung > C++ > Wie validiere ich numerische Eingaben in C mithilfe des Failbits?

Wie validiere ich numerische Eingaben in C mithilfe des Failbits?

DDD
Freigeben: 2024-11-15 11:50:02
Original
901 Leute haben es durchsucht

How to Validate Numeric Input in C   Using the failbit?

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
}
Nach dem Login kopieren

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
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage