Cin溢出到以下Cin中

时间:2019-12-02 19:24:04

标签: c++ command-line-interface cin

我有一个简单的程序,可以在输入完全符合预期时正常工作。

#include <iostream>
using namespace std;

int main ()
{
    int a, b;
    char ab;

    cin >> a;
    cin >> ab;
    cin >> b;

    cout << a;
    cout << ab;
    cout << b;
}

当输入正常时,这非常理想;但是,当第二个cin运行时,它将把余数输入到下一个cin调用中。

所以这种情况的输出如下:

4
454

4
4
54

如何处理cin缓冲区中的多余内容,以防止它进入下一个?

1 个答案:

答案 0 :(得分:2)

您可以使用getline代替cin

string input;
getline(cin, input);

这样,您将把输入作为行,这样就不会为缓冲区或其他任何事情所困扰。之后,您可以解析它。