【发布时间】:2017-03-30 04:03:21
【问题描述】:
在 C++ 中使用 Xcode 我正在尝试创建一个简单的控制台应用程序。然而,我对 cout 和 cin 的使用似乎并没有按我的预期工作。
我期待:
Testing: 12
input was 12
编辑:我已经尽可能地减少了代码测试:
#include <iostream>
int main(int argc, const char * argv[]) {
// insert code here...
int num;
std::cout << "Testing: ";
std::cin >> num;
std::cout << "input was " << num << std::endl;
return 0;
}
样本输出:
12
Testing: input was 12
Program ended with exit code: 0
这里有什么我遗漏的吗?
【问题讨论】:
-
虽然很高兴您提供了示例代码,但请注意它是可编译的,特别是当您在运行时遇到问题时。请花时间阅读此页面以提供minimal reproducible example。
-
道歉。我明白为什么其他人无法编译。然而,我的问题只是我试图强调的 cout 和 cin 区域。希望有人可以在那里看到问题
-
修复编译器错误后,我无法重现您观察到的行为。您使用的是什么编译器、编译器版本和编译器标志?通常,对
std::cin的任何调用都应该刷新std::cout,但这里似乎没有发生。尝试在每个std::cout之后添加<< std::flush。如果这解决了您的问题,对我来说它看起来像是一个库实现错误。虽然也许,在修复编译错误的过程中,我做了一个改变来避免你描述的问题。 -
我建议将您的代码减少到重现问题所需的最小数量。这可能意味着只需使用局部变量执行一堆 cin 和 cout 语句。不需要 GameCharacter 类或与您的问题无关的任何其他函数。
-
@FrançoisAndrieux 我只是使用 xcode 8 中的内置工具。没有什么定制或特殊的。事实上,我确信几天前它工作得很好,但我什么也没改变