C ++ cin.get();奇怪的运作?

时间:2014-05-21 01:26:18

标签: c++ input std cin

我是C ++的新手。我正在搞乱创建一个简单的程序,它输入你输入的两个数字并显示答案。唯一的问题是它关闭得太快了。我决定做我通常做的事情和cin.get();,它通常可以解决问题。奇怪的是,这次它没有。我不得不放两个cin.get();语句。我很好奇为什么它需要我放两个让它保持开放而不是通常的一个。这是我的代码:

int a;
    cin >> a;
    int b;
    cin >> b;
    cout << a + b;
    cin.get();
    cin.get();

2 个答案:

答案 0 :(得分:3)

在最后一个输入(b值)处,您还输入new line作为输入(按Enter键时)。所以第一个cin.get()将该新行作为另一个输入。然后最后一个让你的控制台保持打开状态。

cin.ignore();之后添加cin>>b;可以解决问题。

答案 1 :(得分:0)

请改用cin.ignore();。这应该可以解决你的问题。