在VS代码中调试我的C++程序时,终端中未显示std::cout输出[duplicate]

ff29svar  于 2023-02-10  发布在  其他
关注(0)|答案(1)|浏览(614)
    • 此问题在此处已有答案**:

std::cout won't print(4个答案)
3天前关闭。
在调试过程中,终端中不显示任何输出,只有在程序执行完毕后才会显示。
这是在调试过程中:

这是在调试过程之后:

为什么会发生这种情况?如何在调试过程中使输出出现在断点处?

0qx6xfy6

0qx6xfy61#

这可能是由于缓冲造成的。参见Is std::cout buffered?(答案:是的,它被缓冲了)。您可以通过两种方式手动刷新cout
1.使用the std::flush manipulator

std::cout << std::flush;

1.使用the std::basic_ostream<CharT,Traits>::flush member function

std::cout.flush();

至于为什么在程序退出时会出现输出,这是因为C++规范要求在程序退出时刷新所有带有未写入缓冲数据的开放C流,参见Is there a guarantee of stdout auto-flush before exit? How does it work?

相关问题