从c++获取输入的问题
Issue with getting input from C++
我使用的代码是:
string input;
cout<<"First line"<<endl;
cin>>input;
cout<<"second line: "<< input << endl;
getline(cin, input);
cout<<"third line: "<< input << endl;
然而,当我输入54说输出是这样的:
First line
>56
second line: 56
third line:
,程序终止,甚至不要求另一个输入。这很奇怪,因为下面的代码可以正常工作:
string input;
cout<<"First line"<<endl;
getline(cin, input);
cout<<"second line: "<< input << endl;
getline(cin, input);
cout<<"third line: "<< input << endl;
。输入,输出:
First line
>56
second line: 56
>45
third line: 45
我相信第一个例子没有提示额外的输入,因为>>运算符不消耗第一个输入末尾的空白(换行符),然后随后的getline()
调用消耗换行符并停止寻找更多的输入。
如果我的假设成立,那么我认为对getline()
的两次调用应该首先返回一个空字符串,然后它将提示输入
在执行cin>>input
之后,新的行字符仍然留在流中,这意味着getline
返回一个空字符串。您可以尝试在调用getline
之前执行cin.ignore(std::numeric_limits<std::streamsize>::max())
或cin.ignore()
。
相关文章:
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- 编写时C++中的输入重定向问题
- 输入std::数组时出现问题
- 我试图制作一个程序,要求用户输入问题和答案,但程序循环不正确
- 打印时有二叉树问题.用户输入不打印任何内容
- 用户输入字符串的文件附加问题..C++
- 我无法在Visual Studio代码中使用CIN输入答案,它说输入您的年龄,但它说只读文本编辑器如何解决这个问题?
- 遇到此问题时遇到困难:允许用户输入数组的值并使用 for,而循环也输出输入的最大数字
- C++模板编程设计问题 - 根据输入文件返回不同的类型
- 我应该如何在C++中使用结构体解决输入失败的问题?
- 我遇到使用 c++ 逐行读取输入文件的问题
- 在 2D 矢量中获取多个输入时出现问题
- 不确定出了什么问题(字符串输入)
- 在C++中读取 unicode 输入时出现问题
- 函数,从问题中获取输入,并在主函数中使用该输入
- c++中重载输入运算符的问题
- 通过终端在文件中输入时检测EOF(文件结束)时出现问题
- C ++回测问题:如何检查构造函数在假定失败时是否失败(给定输入的无效参数)
- 从标准输入读取多个类型时出现问题
- visual studio 2008 - c++问题输入