Heim >Backend-Entwicklung >C++ >Wie gehe ich mit falschen Datentypeingaben um und vermeide Endlosschleifen in C?
Umgang mit falschen Datentypeingaben in C
In C kann eine falsche Datentypeingabe zu Endlosschleifen führen, wenn das Programm Eingaben nicht verarbeiten kann des erwarteten Typs. Wenn beispielsweise eine ganze Zahl angefordert wird, aber ein Zeichen eingegeben wird, kann das Programm in eine endlose Eingabeschleife geraten.
Lösung:
Das zugrunde liegende Problem ist die Einstellung von das „Bad Input Flag“ in std::cin, wenn die Eingabe nicht dem erwarteten Typ entspricht. Um dieses Problem zu beheben:
Der folgende Codeausschnitt demonstriert diese Lösung:
while (std::cout << "Enter a number" && !(std::cin >> num)) { std::cin.clear(); // Clear bad input flag std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // Discard input std::cout << "Invalid input; please re-enter.\n"; }
Diese Codeschleife wird fortgesetzt, bis eine gültige Eingabe bereitgestellt wird.
Alternativ kann man eine Eingabe erhalten als Zeichenfolge und konvertieren Sie sie mithilfe von std::stoi oder ähnlichen Methoden, die eine Konvertierungsvalidierung ermöglichen, in eine Ganzzahl.
Das obige ist der detaillierte Inhalt vonWie gehe ich mit falschen Datentypeingaben um und vermeide Endlosschleifen in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!