我应该先说明我对 VS 比较陌生,但是我对 C 并不陌生。
我遇到的问题是打印时标准输出上没有显示任何内容。printf/_s 和 fprintf/_s(stdout, ...) 都不会产生任何输出。有趣的是, fprinf(file, ...) 实际上确实产生了给定文件的输出。这是否与 printf 弃用有关(我已经尝试过 preproc._CRT_SECURE_NO_DEPRECATE)?
以下是我的完整程序:
#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
FILE * pFile = fopen("outputTest.txt", "w");
fprintf(pFile, "At top of main1.\n"); //works
printf("At top of main2.\n"); //doesn't work
printf_s("At top of main3.\n"); //doesn't work
fprintf_s(stdout, "At top of main4.\n"); //doesn't work
fflush(stdout);
fclose(pFile);
return FALSE;
}
我正在使用 Visual Studio 2017,该程序是 Win32(应用程序?)。此外,我已经排除了 Linker->System->Subsystem 是问题的可能性。
任何想法表示赞赏。
编辑:我不确定这是否重要,但 VS 顶部的“解决方案平台”下拉菜单显示 Win32,这与创建新的“Windows 桌面应用程序”不同。它说x86的地方。