为什么在运行此代码时,只有在按下输入键两次后才会执行cout
语句?
#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 按下。
这类似于this question,但代码较少,因此解决方案应该更清晰。即在另一个问题中,人们说问题是cin.ignore()
,但是,我的代码没有。{/ p>
我试过的其他代码失败了:
这会产生相同的确切行为:
cin.getline(buf, 128);
这永远不会移动到下一行(无论按下 return 键多少次):
cin.getline(buf, 128, '\r');
答案 0 :(得分:0)
我发现了问题。这似乎是编译器的一个问题。
当我在Xcode中转到我的项目并将编译器从默认编译器(Apple LLVM编译器4.1)切换到 LLVM GCC 4.2 时,一切正常。