Articles

GeeksforGeeks

Bedenk een probleem waarbij we een onbekend aantal integer inputs moeten nemen.

Een typische oplossing is om een lus uit te voeren en te stoppen als een gebruiker een bepaalde waarde invoert. Hoe moeten we dat doen als we geen if-else, switch-case en conditionele verklaring mogen gebruiken.

Het idee is om gebruik te maken van het feit dat ‘cin >> input’ false is als er een niet-numerieke waarde wordt gegeven. Merk op dat deze aanpak alleen geldt wanneer het gegevenstype van de invoerwaarde int (geheel getal) is.

Belangrijk punt : cin is een object als std::istream. In C++11 en later, std::istream heeft een conversie functie explicit bool() const;, wat betekent dat er een geldige conversie is van std::istream naar bool, maar alleen indien expliciet gevraagd. Een if of while telt als een expliciet verzoek om een conversie naar bool.
Vóór C++ 11 had std::istream een conversie naar operator 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;
}



Output:

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

Dit artikel is geschreven door Aditya Rakhecha. Als je GeeksforGeeks leuk vindt en een bijdrage wilt leveren, kun je ook een artikel schrijven via contribute.geeksforgeeks.org of mail je artikel naar [email protected]. Zie je artikel verschijnen op de GeeksforGeeks hoofdpagina en help andere Geeks.