C++ 如何在没有“std::endl”的情况下在VS代码调试控制台中显示内容?

C++ 如何在没有“std::endl”的情况下在VS代码调试控制台中显示内容?,c++,debugging,visual-studio-code,C++,Debugging,Visual Studio Code,使用std::cout打印某个内容调试应用程序时,调试控制台(第三个选项卡,不是外部控制台)中不会显示任何内容。例外情况之一似乎是使用std::endl: #include <iostream> #include <Windows.h> using namespace std; int main() { while(true) { Sleep(500); std::cout << "Hello world!" <&

使用
std::cout
打印某个内容调试应用程序时,调试控制台(第三个选项卡,不是外部控制台)中不会显示任何内容。例外情况之一似乎是使用
std::endl

#include <iostream>
#include <Windows.h>
using namespace std;
int main() {
    while(true) {
        Sleep(500);
        std::cout << "Hello world!" << std::endl; // Works
    }    
}
#包括
#包括
使用名称空间std;
int main(){
while(true){
睡眠(500);

std::cout
std::endl
\n
加上
std::flush
,这似乎不是您尝试过的选项之一。
\r\n
应该自动刷新,但这是与操作系统的隐式约定。只需调用
std::flush
@MSalters啊,也许是的,我知道在POSIX C中,它会在-行,我认为Windows也有同样的行为(从命令行时代遗留下来)。@sturcotte06“在POSIX C中,它会在行尾自动刷新”这不是真的。@n.“代词m,
调试控制台
是正确的,我确信,因为
终端
显示了构建内容。我正在使用
launch.json
调试我的代码。
std::flush
在没有
\n
的情况下没有任何效果。我需要能够在控制台上获取内容而不必强制line端,不使用外部控制台(因为后者没有意义)
std::endl
\n
加上
std::flush
,这似乎不是您尝试过的选项之一。
\r\n
应该自动刷新,但是这是与操作系统的隐式约定。只需调用
std::flush
@MSalters啊,也许吧,我知道在POSIX C中,它会在行尾自动刷新,我知道Windows应该有同样的行为(从命令行时代遗留下来)。@sturcotte06“在POSIX C中,它会在行尾自动刷新”这不是真的。@n.“代词m,
调试控制台
是正确的,我确信,因为
终端
显示了构建内容。我正在使用
launch.json
调试我的代码。
std::flush
在没有
\n
的情况下没有任何效果。我需要能够在控制台上获取内容而不必强制line端,不使用外部控制台(因为后者没有意义)
#include <iostream>
#include <Windows.h>
using namespace std;
int main() {
    while(true) {
        Sleep(500);
        std::cout << "Hello world!\n"; // Doesn't work

        // std::cout << "Hello world!"; // Doesn't work
        // std::cout << "Hello world!" << std::flush; // Doesn't work
    }    
}