Uso del valor de retorno de cin para tomar un número desconocido de entradas en C++

Considere un problema donde necesitamos tomar un número desconocido de entradas enteras. 

Una solución típica es ejecutar un ciclo y detenerse cuando un usuario ingresa un valor particular. ¿Cómo hacerlo si no se nos permite usar sentencias if-else, switch-case y condicionales?

La idea es utilizar el hecho de que ‘cin >> input’ es falso si se proporciona un valor no numérico. Tenga en cuenta que el enfoque anterior es válido solo cuando el tipo de datos del valor de entrada es int (entero). 

Punto importante: cin es un objeto de std::istream. En C++11 y versiones 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 solo cuando se solicita explícitamente. Un if o while cuenta como una solicitud explícita de conversión a bool. [Fuente StackOverflow

Antes de C++ 11, std::istream tenía una conversión al operador void*() const;

C++

// C++ program to take unknown number
// of integers from user.
#include <iostream>
using namespace std;
int main()
{
    int input;
    int count = 0;
    cout << "To stop enter anything except integer";
    cout << "\nEnter Your Input::";
 
    // cin returns false when anything
    // is entered except integer
    while (cin >> input)
        count++;
     
    cout << "\nTotal number of inputs entered: "
         << count;
    return 0;
}
 
//This code is updated by Susobhan Akhuli

Producción: 

To stop enter any character
Enter Your Input 1 2 3 s
Total number of inputs entered: 3

Tiempo Complejidad: O(cuenta)
Espacio Auxiliar: O(1)

Este artículo es una contribución de Aditya Rakhecha . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *