gpt4 book ai didi

c++ - 为什么我必须在 C++ 中按 enter 两次才能获取行?

转载 作者:太空狗 更新时间:2023-10-29 23:18:32 25 4
gpt4 key购买 nike

为什么我运行这段代码时,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

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


我试过但失败的其他代码:

这会产生完全相同的行为:

    cin.getline(buf, 128);

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

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

最佳答案

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

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

关于c++ - 为什么我必须在 C++ 中按 enter 两次才能获取行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13696962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com