std::getline输入在C++中无法正常工作

std::getline input not working properly in C++

本文关键字:常工作 工作 输入 getline C++ std      更新时间:2023-10-16

可能重复:
需要getline((的帮助
getline没有请求输入?

我正在处理以下代码:

int main()
{
    int num;
    string str;
    cin>>num;
    int points[num][2];
    for(int i=0;i<num;i++)
    {
        cout<<"nPoint"<<i<<":";
        getline (cin,str);
        points[i][0]=atoi(&str[0]);
        points[i][1]=atoi(&str[2]);
    }
    for(int i=0;i<num;i++)
    {
        cout<<"npoint"<<i<<" = "<<points[i][0]<<" "<<points[i][1];
    }

我得到的上述代码的问题是,当我将num值输入为某个整数,然后按enter键,而不是打印。。。

"点0:">

等待我输入,它会打印"点0:"answers"点1:",然后接受点1的输入。

对于点0,它自动将输入作为0和0。

您的程序尚未使用之后的换行符

cin >> num;

传统的方法是:

std::cin.ignore(std::numeric_limits<streamsize>::max(), 'n');

在CCD_ 3中定义了CCD_。

根据约翰·卫斯理王子的回复,尝试

    cin >> num >> endl;

以在再次使用流缓冲区之前对其进行刷新。