从键盘输入数据时,当用户在C++中按"enter"时如何完成输入?

when inputing data from keyboard, how to complete input when user press "enter" in C++?

本文关键字:输入 中按 enter C++ 何完成 用户 数据 键盘      更新时间:2023-10-16

问题是,在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。或者,将循环条件更改为"侦听"某些特定输入。