std::cout 不会打印

新手上路,请多包涵

std::cout << "hello" 不起作用时是否有任何情况?我有 ac/c++ 代码,但是 std::cout 不打印任何内容,甚至不打印常量字符串(例如“hello”)。

有什么方法可以检查 cout 是否能够/无法打开流?有一些成员函数,如 good()bad() ,…但我不知道哪一个适合我。

原文由 mahmood 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.3k
2 个回答

确保刷新流。这是必需的,因为输出流是缓冲的,除非您自己手动刷新缓冲区,否则您无法保证何时刷新缓冲区。

 std::cout << "Hello" << std::endl;

std::endl 将输出换行符并刷新流。或者, std::flush 只会 进行冲洗。也可以使用流的成员函数完成刷新:

 std::cout.flush();

原文由 Joseph Mansfield 发布,翻译遵循 CC BY-SA 3.0 许可协议

std::cout 不适用于 GUI 应用程序!

特定于 MS Visual Studio :当您需要控制台应用程序并使用 MS Visual Studio 时,将项目属性“链接器 -> 系统 -> 子系统”设置为控制台。在 Visual Studio 中创建新的 Win32 项目(用于本机 C++ 应用程序)后,此设置默认为“Windows”,这会阻止 std::cout 将任何输出放到控制台。

原文由 Jan Paulmann 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题