11
#include <fstream>

int _tmain(int argc, _TCHAR* argv[])
{
   std::ofstream F("con.txt", std::ios::out);

   F << "some text in con.txt";

   F.close();

   return 0;
}

输出:

some text in con.txt

如果我将“ con.txt”替换为“”,something.txt那么 something.txt 将包含字符串“ some text in something.txt.”

我认为文件 con.txt 与控制台文件绑定......在第一种情况下真正发生了什么?

4

1 回答 1

24

CON是Windows 平台上的保留设备名称。它不应该用作文件名,即使带有扩展名。

文档中:

不要使用以下保留设备名称作为文件名: CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7,LPT8LPT9. 还要避免这些名称后跟扩展名;例如,NUL.txt不推荐。

于 2010-12-18T08:53:07.447 回答