似乎可以在 Windows 中创建一个可以读取的文件 \.txt
,但我无法通过任何其他方式访问它或查看它是否存在。这似乎只适用于 \.txt
因为我无法创建其他带有反斜杠的文件,例如 a\.txt
string filename = "\\.txt";
// make file
ofstream writer(filename);
writer << "This file exists" << endl;
writer.close();
// read file
ifstream reader(filename);
string line;
getline(reader, line);
cout << line << endl;
reader.close();
当我在 bash 中使用 ls -lia
时,这个文件根本没有出现,但上面的程序读取它很好(我可以删除创建文件的部分并稍后运行它所以文件确实存在),这是如何工作的?
最佳答案
在 Windows 上,ofstream writer("\\.txt")
在当前驱动器的根目录中创建一个名为 .txt
的文件。这是一个完全有效的文件名。
ofstream writer("a\\.txt")
尝试在当前目录的 a
子目录中创建一个名为 .txt
的文件目录。 a
目录必须存在才能成功。它很可能不存在,因此对您来说失败了。
要创建目录,您可以使用 mkdir
函数(它与其他操作系统存在兼容性问题,因为 Windows 不兼容 POSIX),或 CreateDirectory
WINAPI 函数,那是特定于Windows的。调用 CreateDirectoryA("a")
后,"a\\.txt"
路径应该起作用。
关于c++ - Windows 中的 Phantom\.txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69395029/