58 votes

if (cin >> x) - Pourquoi pouvez-vous utiliser cette condition ?

J'ai utilisé "Accelerated C++" pour apprendre le C++ au cours de l'été, et il y a un concept que je ne semble pas comprendre correctement.

Pourquoi est-ce

 int x;
if (cin >> x){}

équivalent à

 cin >> x;
if (cin){}

En regardant le code, il me semble que nous utilisons cin comme variable. Mais je pensais que c'était une fonction. Pourquoi pouvons-nous utiliser cin de cette manière quand c'est x qui a la valeur que nous saisissons dans notre clavier ?

7voto

SLaks Points 391154

cin est une variable (globale) de type istream , pas une fonction.

La istream remplace l' >> pour effectuer la saisie et renvoyer une référence à l'objet sur lequel vous l'avez appelée ( cin ).

7voto

Olympian Points 398

cin est variable dans l'espace de noms std

operator>> renvoie la référence à cin , à cause de cela, vous pouvez écrire : cin >> a >> b , au lieu de cin >> a; cin >> b;

5voto

Erix Points 3705

car le résultat de l'expression

 cin >> x

évalue à

 cin

après la lecture du flux.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X