问为什么我不能通过文件的显式路径打开文件?调用
fopen("c:\newdir\file.dat", "r")失败。
答您实际请求的文件——其名称中包含\n和\f这些字符——可能不存在,也不是您认为要打开的文件。
在字符常量和字符串字面量中,反斜杠\是转义字符,它赋予其后的字符特殊含义。为了使路径名中的字面反斜杠能够被正确地传递给fopen(或任何其他函数),它们必须加倍,这样每一对中的第一个反斜杠会引用第二个反斜杠
fopen("c:\\newdir\\file.dat", "r")或者,在 MS-DOS 下,目录分隔符也接受正斜杠,因此您可以使用
fopen("c:/newdir/file.dat", "r")(另外,请注意,预处理器#include指令中提到的头文件名不是字符串字面量,因此您可能不必担心那里的反斜杠。)