繁体   English   中英

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

[英]when inputing data from keyboard, how to complete input when user press “enter” in C++?

问题是,在C ++中,我希望从用户那里获取数字并将每个int放到一个向量中。 所以我写下面的代码:

#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。 或者,将循环条件更改为“监听”某些特定输入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM