Heim >Backend-Entwicklung >C++ >Wie kann man Zahlen mit „cin' in C zuverlässig eingeben?

Wie kann man Zahlen mit „cin' in C zuverlässig eingeben?

Linda Hamilton
Linda HamiltonOriginal
2024-12-16 16:22:10298Durchsuche

How to Reliably Input Numbers Using `cin` in C  ?

Fehlerbehebung bei der Zahleneingabe mit cin

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!

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