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.