Articles

GeeksforGeeks

Consideriamo un problema in cui abbiamo bisogno di prendere un numero sconosciuto di input interi.

Una soluzione tipica è quella di eseguire un ciclo e fermarsi quando un utente inserisce un particolare valore. Come farlo se non ci è permesso usare if-else, switch-case e dichiarazioni condizionali.

L’idea è di usare il fatto che ‘cin >> input’ false se viene dato un valore non numerico. Notate che questo approccio di cui sopra è vero solo quando il tipo di dati del valore di input è int (intero).

Punto importante: cin è un oggetto se std::istream. In C++11 e successivi, std::istream ha una funzione di conversione esplicita bool() const;, il che significa che c’è una conversione valida da std::istream a bool, ma solo se richiesta esplicitamente. Un if o while conta come richiesta esplicita di una conversione in bool.
Prima del C++ 11, std::istream aveva una conversione in operatore 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

Questo articolo è stato contribuito da Aditya Rakhecha. Se ti piace GeeksforGeeks e vuoi contribuire, puoi anche scrivere un articolo usando contribute.geeksforgeeks.org o inviare il tuo articolo a [email protected]. Vedi il tuo articolo apparire sulla pagina principale di GeeksforGeeks e aiuta altri Geek.