XCode 上 cin 和 cout 的 C++ 执行顺序无效

标签 c++ xcode gcc

我在更新 MacOS 和 XCode 时遇到了这个问题。

如您在第一张图片中看到的,如果我不将 endl 放入第二个 cout 行的第 11 行“输入数字”,则此行将被放入在使程序运行不正常的cin语句之后。

cout 在接受来自 cin 的输入后打印

Sample C++ code

这是程序的输出:

enter image description here

但是,如果我将 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::cinstd::couttied,这意味着对 std::cin< 的提取操作 首先刷新 std::cout。因此,您的代码应该按预期工作。如果不是,那么要么是您的代码使用的标准库不符合语言定义(不太可能),要么是您的控制台窗口中有一些奇怪的东西(更有可能)。尝试从命令行运行该程序。

关于XCode 上 cin 和 cout 的 C++ 执行顺序无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43133373/

相关文章:

C - "static"函数的函数原型(prototype)和定义不匹配

c++ - 派生类中基类的大小

c++ - 使用数组处理结构元素的输入

ios - 在 Swift 3 和 iOS 中管理 Sqlite 数据库文件(从本地和/或 bundle 复制到应用程序)

c++ - 为什么添加内联汇编注释会导致 GCC 生成的代码发生如此巨大的变化?

c++ - 如何将类方法的地址转换为 (void *)

c++ - 从字符串 C++ 的 vector 中替换字符串

c++ - 从属名称的模板消歧器

ios - 更改 View 时隐藏键盘

ios - 从 AVAudioRecorder 获取分贝