Problem:
Der bereitgestellte Code soll verhindern, dass nicht numerische Zeichen angezeigt werden als Eingabe akzeptiert. Es kann jedoch nicht mit Situationen umgehen, in denen die Eingabe ein Zeichen nach einer gültigen Zahl enthält.
Vorgeschlagene Lösung:
Um dieses Problem zu beheben, schlagen wir einen anderen Ansatz vor mit std::getline und std::string.
Code Snippet:
#include <string> #include <sstream> int main() { std::string line; double d; while (std::getline(std::cin, line)) { std::stringstream ss(line); if (ss >> d) { if (ss.eof()) { // Success break; } } std::cout << "Error!" << std::endl; } std::cout << "Finally: " << d << std::endl; }
Erklärung:
Diese überarbeitete Lösung folgt diesen Schritten:
Dieser Ansatz stellt sicher, dass nur gültige Reelle Zahlen werden als Eingabe akzeptiert, unabhängig von nachgestellten Zeichen oder Leerzeichen in der Eingabe.
Das obige ist der detaillierte Inhalt vonWie können C-Streams verwendet werden, um ungültige numerische Eingaben zuverlässig zu verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!