Heim > Backend-Entwicklung > C++ > Wie validiere ich Benutzereingaben robust als Double in C?

Wie validiere ich Benutzereingaben robust als Double in C?

Susan Sarandon
Freigeben: 2024-12-22 20:54:10
Original
364 Leute haben es durchsucht

How to Robustly Validate User Input as a Double in C  ?

Benutzereingaben als Double in C validieren

Eine häufige Programmieraufgabe besteht darin, Benutzereingaben zu validieren, um sicherzustellen, dass sie bestimmte Kriterien erfüllen. Ein solches Kriterium besteht darin, sicherzustellen, dass die Eingabe eine gültige Gleitkommazahl ist, insbesondere ein Double. So können Sie diese Validierung in C angehen:

Grundlegender Validierungsansatz

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

Dieser Code bietet eine grundlegende Validierung, indem er versucht, ein Double aus der Standardeingabe zu lesen. Wenn die Eingabe erfolgreich gelesen wurde, fahren Sie mit dem Programm fort. Andernfalls wird eine Fehlermeldung angezeigt.

Behebung der Endloseingabeschleife

Der obige Code kann jedoch dazu führen, dass das Programm die Fehlermeldung auch bei gültigen Eingaben kontinuierlich ausgibt. Dies liegt daran, dass der Cin >> x-Zeile schlägt bei ungültiger Eingabe fehl, sodass das Fehlerflag im Eingabestream gesetzt bleibt. Um dieses Problem zu beheben, müssen Sie den Fehlerstatus löschen, nachdem die ungültige Eingabe erkannt wurde.

while (1) {
  if (cin >> x) {
    // valid number
    break;
  } else {
    // not a valid number
    cout << "Invalid Input! Please input a numerical value." << endl;
    cin.clear();
    while (cin.get() != '\n') ; // empty loop to discard invalid input
  }
}
Nach dem Login kopieren

Die Zeile cin.clear() löscht das Fehlerflag und die anschließende leere Schleife verbraucht die verbleibenden ungültigen Zeichen auf der Eingabezeile. Dadurch wird sichergestellt, dass der nächste Eingabeversuch mit einem sauberen Blatt beginnt.

Durch Befolgen dieser Schritte können Sie Benutzereingaben effektiv als Double in C validieren und so einen robusten und benutzerfreundlichen Eingabevalidierungsmechanismus bereitstellen.

Das obige ist der detaillierte Inhalt vonWie validiere ich Benutzereingaben robust als Double 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