Cin schreibgeschützte Zahlen erstellen
Das Erzwingen der numerischen Eingabe mithilfe von cin kann eine Herausforderung darstellen, insbesondere bei der Verarbeitung gemischter Eingabetypen. In diesem Artikel wird eine Lösung untersucht, um sicherzustellen, dass cin nur numerische Werte akzeptiert.
Im bereitgestellten Code versuchen while-Schleifen, ungültige Eingaben zu korrigieren, indem sie nicht numerische Zeichen ignorieren. Bei der Verarbeitung mehrerer Eingaben stößt diese Methode jedoch auf Einschränkungen.
Lösung: Verwendung von std::getline und std::string
Um diese Hürde zu überwinden, können wir Folgendes verwenden: ein umfassenderer Ansatz:
Konvertieren Sie die Zeichenfolge in ein Double mit std::stringstream:
Überprüfen Sie die Konvertierung:
Hier ist eine Beispielimplementierung:
#include <sstream> #include <string> 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; }
Diese Lösung stellt sicher, dass sowohl Ganzzahlen als auch Gleitkommazahlen korrekt verarbeitet werden , wobei nicht numerische Zeichen vollständig verworfen werden.
Das obige ist der detaillierte Inhalt vonWie kann man dafür sorgen, dass „cin' nur numerische Eingaben in C akzeptiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!