In C kann die Funktion cin zum Lesen von Benutzereingaben verwendet werden, es wird jedoch problematisch, wenn versucht wird, die Eingabe als gültig zu validieren Nummer. Dieses Problem tritt auf, wenn nicht numerische Zeichen eingegeben werden, wodurch möglicherweise eine Teileingabe für die nächste Iteration zurückbleibt.
Eine Lösung besteht darin, std::getline und std::string zu verwenden, um die gesamte Eingabezeile zu lesen. Anschließend wird std::stringstream verwendet, um die Eingabe zu analysieren und einen Double-Wert zu extrahieren. Die Schleife wird fortgesetzt, bis die gesamte Zeile erfolgreich in ein Double umgewandelt werden kann, wodurch das Problem der verbleibenden Eingaben beseitigt wird.
#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; }
Das obige ist der detaillierte Inhalt vonWie kann man Zahlen mit „cin' in C zuverlässig eingeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!