3

为什么我运行这段代码时,只有按两次键cout才执行语句?enter

#include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
    char buf[128];
    cin.getline(buf, 128, '\n');
    cout << buf;
    return 0;
}

我该如何解决?

我在 OS X Lion 上使用 Xcode 版本 4.5.2。我尝试在终端中运行该程序,它也需要两次return按下。

这与此问题类似,但代码较少,因此解决方案应该更清晰。即在另一个问题中,人们说问题是cin.ignore(),但是,我的代码没有。


我尝试过的其他代码失败了:

这会产生相同的行为:

    cin.getline(buf, 128);

这永远不会移动到下一行(无论按下多少次return键):

    cin.getline(buf, 128, '\r');
4

1 回答 1

0

我发现了问题。这似乎是编译器的问题。

当我在 Xcode 中进入我的项目并将编译器从默认编译器(Apple LLVM 编译器 4.1)切换到LLVM GCC 4.2时,一切正常。

于 2012-12-04T06:16:00.087 回答