Gute Eingabevalidierungsschleife mit cin - C
Eingabevalidierung
Beim Arbeiten mit Eingaben Von Benutzern ist die Validierung der Eingaben von entscheidender Bedeutung, um die Datenintegrität sicherzustellen und Fehler zu verhindern. Eine effektive Methode ist die Verwendung einer Schleife, um den Benutzer wiederholt aufzufordern, bis eine gültige Eingabe erfolgt.
Die vorgeschlagene Schleife
Die Frage stellt eine Schleife zur Eingabevalidierung dar:
int taxableIncome; int error; // input validation loop do { error = 0; cout << "Please enter in your taxable income: "; cin >> taxableIncome; if (cin.fail()) { cout << "Please enter a valid integer" << endl; error = 1; cin.clear(); cin.ignore(80, '\n'); } } while (error == 1);
Gemeinsamer Ansatz
Während die Schleife funktioniert, gibt es häufigere und wohl bessere Möglichkeiten, an die Eingabevalidierung heranzugehen.
Ausnahmebehandlung
Die Ausnahmebehandlung bietet eine direktere Möglichkeit, Eingabefehler zu behandeln. Mit den Blöcken istringstream und try-catch können wir Eingaben validieren und Fehler behandeln, ohne auf Fehlercodes angewiesen zu sein. Zum Beispiel:
int taxableIncome; string input; while (true) { cout << "Please enter in your taxable income: "; getline(cin, input); istringstream iss(input); if (!(iss >> taxableIncome)) { cout << "Please enter a valid integer" << endl; continue; } break; }
Endlosschleife mit Validierung
Ein anderer Ansatz besteht darin, eine Endlosschleife zu verwenden, die Eingaben kontinuierlich validiert und den Benutzer bei Bedarf zu Korrekturen auffordert.
int taxableIncome; while (true) { cout << "Please enter in your taxable income: "; if (cin >> taxableIncome) { break; } else { cout << "Please enter a valid integer" << endl; cin.clear(); cin.ignore(numeric_limits<streamsize>::max(), '\n'); } }
Wahl des Ansatzes
Die Der beste Ansatz hängt von den spezifischen Anforderungen der Anwendung ab. Die Ausnahmebehandlung ist eine modernere und robustere Methode, während die Endlosschleife eine einfache und direkte Möglichkeit zur Eingabevalidierung bietet.
Das obige ist der detaillierte Inhalt vonWie implementiert man robuste Eingabevalidierungsschleifen in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!