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)