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
Freigeben: 2024-12-10 15:43:09
Original
241 Leute haben es durchsucht

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

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!

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