Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
FILE* logfile; freopen_s(&logfile, "log.txt", "w", stdout); printf("test"); fclose(stdout);
我对 Visual Studio 有一个奇怪的问题。当我在控制台应用程序中执行上述代码时,日志文件被写入正常。但是当我在 Win 应用程序中执行代码时,日志文件始终为空。
有谁知道我做错了什么?
Windows 程序没有附加控制台。因此,任何到 stdout 的流 IO 都没有效果。您可以通过 SUBSYSTEM 开关将应用程序转换为控制台应用程序,或通过 SetStdHandle 函数将句柄分配给标准输出。