从键盘输入数据时,当用户在C++中按"enter"时如何完成输入?
when inputing data from keyboard, how to complete input when user press "enter" in C++?
问题是,在C++中,我希望从用户那里获取数字并将每个整数放入向量中。所以我写了以下代码:
#include <iostream>
#include <vector>
using namespace std;
vector<int> readVals()
{
vector<int> read;
int temp;
cin >> temp;
while (!cin.fail() && !cin.eof())
{
read.push_back(temp);
cin >> temp;
}
return read;
}
void printVals(vector<int> v)
{
if(v.size() >= 1)
{
for (vector<int>::size_type i = 0; i < v.size()-1; i++ )
{
cout << v[i] << " ";
cout << v[v.size()-1] << "n";
}
}
}
int main()
{
vector<int> a = readVals();
printVals(a);
return 0;
}
然后,我编译它以创建一个 a.out 文件。我在in1
中有一些数字.当我执行命令时:a.out < in1
,我得到了我想要的。但是当我希望数据可以由用户输入时,我很困惑。用户可以输入一些数字,然后按 Enter 将数字传入。但是,我使用了getline()
,失败了。 !="n"
,失败了。每次按Enter键时,程序似乎仍在等待更多数字而不是打印出结果。有谁能帮助我成功吗?谢谢!
您的循环正在等待 cin 处于"失败"状态或文件末尾。按回车键也不行。您可以通过在Windows上按CTRL-Z或在unix/mac上按CTRL-D来结束输入。这些将"文件结束"字符发送到 cin。或者,将循环条件更改为"侦听"某些特定输入。
相关文章:
- 在循环中按顺序遍历成员变量
- 输入中的字符串数未知(以字母表示)
- 在STL - C++中按成绩对学生列表进行排序?
- 3-3. 编写一个程序来计算每个不同单词在其输入中出现的次数
- 有没有办法在 c++ 中按更大的 int 和更小的对对 int 和对的集合进行排序?
- 如何在 c++ 中按预定义的顺序循环浏览类实例?
- 如何使用逗号解析输入中的整数
- C++ 获取函数在常量引用中按值返回的结果
- 哪个更快:在 1d 向量中按字符串搜索还是在 2d 向量中按向量搜索?
- 如何从标准输入中检测格式化输入错误?
- 忽略一行输入中的某些输入
- 在 std::variant 中按类型获取索引
- 在 OpenCV 中按深度维度排序,C++
- 如何从输入的文本文件中按姓氏字母顺序对图表进行排序?
- 从键盘输入数据时,当用户在C++中按"enter"时如何完成输入?
- 从输入中读取单词序列。使用"Quit"终止,按输入顺序打印,不要打印两次单词。
- 在C++中按空格分隔用户输入有什么更好的解决方案?
- 如何在c++中按字母顺序对标准输入字符串排序
- c++中按字符读取输入文件时出现断行
- 如何用C++编写一个程序,该程序从输入中接收10个数字并检查这些数字是否按升序排列