Articles

GeeksforGeeks

Considérez un problème où nous devons prendre un nombre inconnu d’entrées entières.

Une solution typique consiste à exécuter une boucle et à s’arrêter lorsqu’un utilisateur entre une valeur particulière. Comment le faire si nous ne sommes pas autorisés à utiliser if-else, switch-case et l’instruction conditionnelle.

L’idée est d’utiliser le fait que ‘cin >> input’ faux si une valeur non numérique est donnée. Notez que cette approche ci-dessus ne tient que lorsque le type de données de la valeur d’entrée est int (entier).

Point important : cin est un objet si std::istream. En C++11 et plus, std::istream a une fonction de conversion explicit bool() const ;, ce qui signifie qu’il existe une conversion valide de std::istream en bool, mais seulement lorsqu’elle est explicitement demandée. Un if ou un while compte comme demandant explicitement une conversion en bool.
Avant C++ 11, std: :istream avait une conversion en opérateur void*() const ;

#include <iostream>
using namespace std;
int main()
{
int input;
int count = 0;
cout << "To stop enter any character";
cout << "\nEnter Your Input::";
while (cin >> input)
count++;
cout << "\nTotal number of inputs entered: "
<< count;
return 0;
}



Sortie :

To stop enter any characterEnter Your Input 1 2 3 sTotal number of inputs entered: 3

Cet article est contribué par Aditya Rakhecha. Si vous aimez GeeksforGeeks et que vous souhaitez contribuer, vous pouvez également écrire un article en utilisant contribute.geeksforgeeks.org ou envoyer votre article par courrier à [email protected]. Voyez votre article apparaître sur la page principale de GeeksforGeeks et aidez d’autres Geeks.