Heim > Artikel > Backend-Entwicklung > Wie funktioniert „if (cin >> x)' bei der C-Eingabevalidierung?
> x)` Arbeiten Sie in der C-Eingabevalidierung? " />
Verstehen der „if (cin >> x)“-Bedingung in C
In C ist die „if (cin >> x)“-Bedingung Die Bedingung „)“ wird häufig verwendet, um zu überprüfen, ob ein Wert erfolgreich aus dem Standardeingabestream (cin) gelesen wurde. Dies kann jedoch verwirrend sein, da cin normalerweise mit a verknüpft ist Funktion.
cin als Objekt
Der Schlüssel zum Verständnis dieser Bedingung liegt in der Erkenntnis, dass cin nicht nur eine Funktion ist, sondern auch ein Objekt der istream-Klasse , der den Standardeingabestream darstellt. Daher verfügt cin über Mitgliedsfunktionen und Operatoren, einschließlich des überladenen „>>“. Operator.
Überladen des „>>“-Operators
Der „>>“-Operator für Streams wird überladen, um einen Verweis auf denselben Stream zurückzugeben. Das bedeutet, dass Ausdrücke wie „cin >>“ x“ und „cin“ werden zum Stream-Objekt selbst ausgewertet.
Boolesche Konvertierung
Das Stream-Objekt kann basierend auf der letzten Eingabe implizit in einen booleschen Wert konvertiert werden Der Vorgang war erfolgreich oder fehlgeschlagen. Ein erfolgreicher Vorgang gibt „true“ zurück, während ein Fehler (z. B. wenn ein nicht numerischer Wert eingegeben wird) zurückgegeben wird falsch.
Äquivalenz von Bedingungen
Somit ist die Bedingung „if (cin >> x)“ äquivalent zu „cin >> X; if (cin)“. Im ersten Fall wird der Operator „>>“ verwendet, um einen Wert in x einzulesen, und bei Erfolg ist die Bedingung wahr. Im zweiten Fall wird der Operator „cin >>“ verwendet. x;“-Anweisung führt den gleichen Vorgang aus und dann wird das Stream-Objekt cin explizit auf Erfolg überprüft.
Überprüfung des Eingabeerfolgs
Durch die Verwendung der „if (cin > ;>
Das obige ist der detaillierte Inhalt vonWie funktioniert „if (cin >> x)' bei der C-Eingabevalidierung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!