考虑一个问题,我们需要采用未知数量的整数输入。
一种典型的解决方案是运行循环并在用户输入特定值时停止。如果不允许我们使用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等的更多准备工作,请参阅“完整面试准备课程” 。