Heim >Backend-Entwicklung >C++ >Wie kann man doppelte Eingaben in C zuverlässig validieren?

Wie kann man doppelte Eingaben in C zuverlässig validieren?

Barbara Streisand
Barbara StreisandOriginal
2024-12-10 15:43:09194Durchsuche

How to Reliably Validate Double Input in C  ?

Validierung von Benutzereingaben als Double in C

Validierung von Benutzereingaben, um deren Integrität sicherzustellen, ist in der C-Programmierung von entscheidender Bedeutung. Beim Umgang mit Gleitkommawerten ist es wichtig zu überprüfen, ob die Eingabe tatsächlich ein Double ist.

Betrachten Sie den folgenden Codeausschnitt, der den Benutzer iterativ zur Eingabe eines Doubles auffordert:

double x;

while (1) {
    cout << '>';
    if (cin >> x) {
        // valid number
        break;
    } else {
        // not a valid number
        cout << "Invalid Input! Please input a numerical value." << endl;
    }
}

Allerdings weist der bereitgestellte Code einen Fehler auf: Wenn der Benutzer eine ungültige Eingabe macht, schlägt die if-Anweisung fehl und der else-Block zeigt eine Fehlermeldung an. Das Programm fordert den Benutzer jedoch nicht erneut zur Eingabe auf, was zu einer Endlosschleife von Fehlermeldungen führt.

Um dieses Problem zu beheben, können wir die Funktion cin.clear() verwenden, um den Fehlerstatus zu löschen while (cin.get() != 'n') ; Schleife zum Leeren des Eingabepuffers. Auf diese Weise zeigt das Programm bei einer ungültigen Eingabe die Fehlermeldung an, löscht den Fehlerstatus, verwirft die ungültige Eingabe und fordert den Benutzer zu einer gültigen Eingabe auf.

Das obige ist der detaillierte Inhalt vonWie kann man doppelte Eingaben in C zuverlässig validieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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