无法在 C++ 中打印到控制台

Unable to print to console in C++

我在使用 printf、stdout 和 stderr 时遇到了一些问题。

我已经看到了这样的问题,问题已经在这里与 \n 相关,但我已经用 \n 结束我的字符串无济于事。

我相当确定这是编译器设置造成的,因为在默认设置下打印效果很好。但是,我不能使用默认设置,因为我需要使用一个库 (SDL2)

这是我的编译脚本:

g++ main.cpp -o main.exe -IC:/cppLibs/SDL2-2.0.14/x86_64-w64-mingw32/include/SDL2/ -LC:/cppLibs/SDL2-2.0.14/x86_64-w64-mingw32/lib/ -lmingw32 -lSDL2main -lSDL2 -mwindows -lm -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid -static-libgcc

下面是未打印的代码:

#include <SDL.h>
#include <stdio.h>
#include <iostream>

int main (int argc, char* args[])
{
    setvbuf(stdout, NULL, _IONBF, 0);

    fprintf(stdout, "test\n");
    fflush(stdout);
}

我试过各种变体,cout 也没有做任何事情

我在 Windows 10,我的编译器是 mingw64 10.3.0 (g++),我使用 Visual Studio 代码作为我的 IDE.

我是 Whosebug 的新手,所以如果这个问题问错了地方,或者我问错了,那么我深表歉意

我的问题是我从 google 复制了一些编译器参数。其中之一,“-mwindows”抑制控制台输出。

@HolyBlackCat 找到了这个,但留下了评论而不是答案,所以我无法将其标记为解决方案。如果 Holy 重新发布他们的评论作为答案,我会删除它,并给他们信用