Articles

GeeksforGeeks

Consideremos un problema en el que necesitamos tomar un número desconocido de entradas enteras.

Una solución típica es ejecutar un bucle y parar cuando el usuario introduce un valor determinado. Cómo hacerlo si no se nos permite utilizar if-else, switch-case y sentencia condicional.

La idea es utilizar el hecho de que ‘cin >>entrada’ false si se da un valor no numérico. Tenga en cuenta que este enfoque anterior sólo es cierto cuando el tipo de datos del valor de entrada es int (entero).

Punto importante : cin es un objeto si std::istream. En C++11 y posteriores, std::istream tiene una función de conversión explícita bool() const;, lo que significa que hay una conversión válida de std::istream a bool, pero sólo cuando se solicita explícitamente. Un if o un while cuentan como una solicitud explícita de conversión a bool.
Antes de C++ 11, std::istream tenía una conversión a operador 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;
}



Salida:

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

Este artículo es una contribución de Aditya Rakhecha. Si te gusta GeeksforGeeks y quieres contribuir, también puedes escribir un artículo en contribute.geeksforgeeks.org o enviarlo por correo a [email protected]. Verás cómo tu artículo aparece en la página principal de GeeksforGeeks y ayudarás a otros Geeks.