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.