1. 问题来源
使用 msvc 编译器的前提下,在 11-10 和 11-11 博客中都发现了此问题。11-10 中,在 va_start(args, format); 函数之前添加中文注释,其结果如下图所示:提示 args 并未初始化。
将该注释移至代码后,发现程序可以正常运行。其余部分均未做修改。
11-11 博客中,使用 freopen() 函数又出现此问题。中文注释在 freopen() 函数之前时,stdout 文件流重定向失败,仍在控制台打印。
将中文注释移至代码后,或者使用英文注释,其结果如下图所示。可以发现,stdout 重定向成功,生成了对应的 output.txt 文件。
2. 原因
目前原因未知。待定。