我在更新 MacOS 和 XCode 时遇到了这个问题。
如您在第一张图片中看到的,如果我不将 endl
放入第二个 cout
行的第 11 行“输入数字”,则此行将被放入在使程序运行不正常的cin
语句之后。
cout
在接受来自 cin
的输入后打印
这是程序的输出:
但是,如果我将 endl
放在“Enter the number”行的末尾,那么代码将正常运行。
我已经重新安装了 XCode,问题仍然存在。它还会影响我的旧项目,这真的很烦人。
这是我Macbook上的编译器版本
"Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr
--with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/c++/4.2.1
Apple LLVM version 8.1.0 (clang-802.0.38)
Target: x86_64-apple-darwin16.5.0
Thread model: posix
InstalledDir:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin"
我真的希望有人能帮我解决这个问题。我不知道错误来自 XCode 或 GCC。
最佳答案
std::cin
和 std::cout
是tied,这意味着对 std::cin< 的提取操作
首先刷新 std::cout
。因此,您的代码应该按预期工作。如果不是,那么要么是您的代码使用的标准库不符合语言定义(不太可能),要么是您的控制台窗口中有一些奇怪的东西(更有可能)。尝试从命令行运行该程序。
关于XCode 上 cin 和 cout 的 C++ 执行顺序无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43133373/