- 此问题在此处已有答案**:
std::cout won't print(4个答案)
3天前关闭。
在调试过程中,终端中不显示任何输出,只有在程序执行完毕后才会显示。
这是在调试过程中:
这是在调试过程之后:
为什么会发生这种情况?如何在调试过程中使输出出现在断点处?
std::cout won't print(4个答案)
3天前关闭。
在调试过程中,终端中不显示任何输出,只有在程序执行完毕后才会显示。
这是在调试过程中:
这是在调试过程之后:
为什么会发生这种情况?如何在调试过程中使输出出现在断点处?
1条答案
按热度按时间0qx6xfy61#
这可能是由于缓冲造成的。参见Is std::cout buffered?(答案:是的,它被缓冲了)。您可以通过两种方式手动刷新
cout
:1.使用the
std::flush
manipulator:1.使用the
std::basic_ostream<CharT,Traits>::flush
member function:至于为什么在程序退出时会出现输出,这是因为C++规范要求在程序退出时刷新所有带有未写入缓冲数据的开放C流,参见Is there a guarantee of stdout auto-flush before exit? How does it work?。