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::coutstd::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
}
}