📜  使用cin的返回值获取C++中未知数量的输入

📅  最后修改于: 2021-05-30 02:38:14             🧑  作者: Mango

考虑一个问题,我们需要采用未知数量的整数输入。

一种典型的解决方案是运行循环并在用户输入特定值时停止。如果不允许我们使用if-else,switch-case和条件语句,该怎么办。

想法是使用这样的事实:如果给出了非数值,则’cin >> input’为false。请注意,仅当输入值的数据类型为int(整数)时,以上方法才适用。

要点:如果std :: istream,cin是一个对象。在C++ 11和更高版本中,std :: istream具有转换函数显式的bool()const ;,这意味着从std :: istream到bool的转换是有效的,但仅在显式请求的地方。 if或while视为明确要求转换为bool。 [来源StackOVerflow]
在C++ 11之前,std :: istream转换为运算符void *()const;

// CPP program to take unknown number
// of integers from user.
#include 
using namespace std;
int main()
{
    int input; 
    int count = 0; 
    cout << "To stop enter any character";
    cout << "\nEnter Your Input::";
  
    // cin returns false when a character
    // is entered
    while (cin >> input) 
        count++; 
      
    cout << "\nTotal number of inputs entered: " 
         << count;
    return 0;
}

输出:

To stop enter any character
Enter Your Input 1 2 3 s
Total number of inputs entered: 3
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”