20.21 为什么用了详尽的路径还不能打开文件?  fopen("c:\ newdir \file.dat", "r")  返回错误。

你实际请求的文件名内含有字符 \n 和 \f, 可能并不存在, 也不是你希望的。

在字符常量和字符串中, 反斜杠 \ 是逃逸字符, 它赋予后面紧跟的 字符特殊意义。为了正确的把反斜杠传递给 fopen() (或其它函数), 必须成双的 使用, 这样第一个反斜杠引述了第二个:

        fopen("c:\\newdir\\file.dat", "r")

另一个选择, 在 MS-DOS 下, 正斜杠也被接受为路径分隔符, 所以也可以这样用:

        fopen("c:/newdir/file.dat", "r")

注意, 顺便提一下, 用于预处理 #include 指令的头文件名不是字符串文字, 所以不必担心反斜杠的问题。

翻译朱群英、孙云, LaTeX2HTML 编译 朱群英 (2005-06-23)