Heim >Backend-Entwicklung >C++ >Wie kann ich ungültige Eingaben in C ordnungsgemäß behandeln?

Wie kann ich ungültige Eingaben in C ordnungsgemäß behandeln?

Linda Hamilton
Linda HamiltonOriginal
2024-12-19 22:00:21239Durchsuche

How Can I Gracefully Handle Invalid Input in C  ?

Umgang mit ungültigen Eingaben in C

In C ist die Eingabevalidierung entscheidend, um unerwartete oder falsche Benutzereingaben zu verarbeiten. Dadurch wird sichergestellt, dass Ihr Programm verschiedene Eingabeszenarien verarbeiten kann und potenzielle Fehler vermieden werden.

Stellen Sie sich eine Situation vor, in der Ihr Programm eine Ganzzahl anfordert, aber stattdessen ein Zeichen empfängt. Um eine durch diese Nichtübereinstimmung verursachte Endlosschleife zu verhindern, ist es wichtig, das von std::cin gesetzte Flag für fehlerhafte Eingaben zu löschen und die ungültige Eingabe zu verwerfen.

// Clear bad input flag and discard invalid input
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";
}

Dieses Codefragment prüft dann, ob der Eingabevorgang fehlschlägt löscht das Flag für fehlerhafte Eingaben mit std::cin.clear() und verwirft die ungültigen Eingaben mit std::cin.ignore(). Durch die Schleife, bis eine gültige Eingabe empfangen wird, kann Ihr Programm Endlosschleifen verhindern und ungültige Eingaben ordnungsgemäß verarbeiten.

Alternativ können Sie die Eingabe als Zeichenfolge erfassen und sie mithilfe von std::stoi oder einer anderen Methode in eine Ganzzahl konvertieren Dies ermöglicht eine Konvertierungsvalidierung. Dieser Ansatz bietet Flexibilität bei der Handhabung einer Reihe von Eingabeszenarien.

Das obige ist der detaillierte Inhalt vonWie kann ich ungültige Eingaben in C ordnungsgemäß behandeln?. 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