Maison >développement back-end >C++ >`if (cin >> x)` est-il une expression conditionnelle valide en C ?
x)` une expression conditionnelle valide en C ? " />
Considérez l'extrait de code C suivant :
int x; if (cin >> x) {}
Certains programmeurs peuvent trouver déroutant que la condition ci-dessus équivaut à :
cin >> x; if (cin) {}
Comprendre pourquoi c'est le cas nécessite d'examiner de plus près la nature de cin.
Malgré la notation familière qui ressemble à un appel de fonction, cin est en fait un objet de la classe istream. Il représente le flux d'entrée standard et correspond. au flux stdin en C.
Le >> L'opérateur est surchargé pour les flux. Lorsqu'il est appliqué à un objet flux, il renvoie une référence au même flux.
Les flux peuvent participer à des conditions booléennes via un opérateur de conversion qui évalue les à vrai ou faux. Ceci est particulièrement utile pour détecter les erreurs de saisie.
Dans if (cin >> x), l'opérateur >> est utilisé pour extraire une valeur du flux d'entrée cin et la stocker dans x. Si l’extraction réussit, la condition est évaluée comme vraie. D'un autre côté, si une valeur non numérique est saisie, l'extraction échoue et la condition est évaluée comme fausse.
Par conséquent, si (cin >> x) est vérifier efficacement si cin est dans un état permettant une extraction valide. Cette condition permet aux programmeurs de gérer facilement la validation des entrées et de répondre en conséquence.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!