Heim > Backend-Entwicklung > C++ > Wie implementiert man robuste Eingabevalidierungsschleifen in C?

Wie implementiert man robuste Eingabevalidierungsschleifen in C?

Susan Sarandon
Freigeben: 2024-12-14 00:31:17
Original
235 Leute haben es durchsucht

How to Implement Robust Input Validation Loops in C  ?

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

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

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

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!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage