關於C開啟檔案失敗

2021-07-12 04:51:29 字數 1165 閱讀 8654

c語言可以做到使用檔案的多種方式,例如開啟乙個用於讀取的文字檔案,建立乙個用於寫入的文字檔案,附加乙個文字檔案等等。現在我們討論一下關於使用c語言開啟檔案錯誤的情景。

fopen函式用來開啟乙個檔案,其有固定的呼叫形式:檔案指標名=fopen(檔名,"r"),我們這裡討論開啟所以是"r",如有其他操作則給fopen傳入相應的使用檔案方式,例如附加乙個文字是"rb"。檔名必須被宣告為file型別的指標變數。 

例如我現在要開啟乙個文字,我在e//kankan目錄下建立乙個日記本文件,將其命名為wode,日記本文件的字尾是.jnt。現在我們可以在編譯器底下寫入相應的**來開啟這個日記本文件。

現在我先讓file指標變數指向乙個test.c檔案,注意,現在肯定會開啟失敗,應為e目錄下根本不存在test.c檔案

**演示:

結果:

現在我們將**略微修改為:

結果:

同時我們要注意乙個計算機的小知識帶點,計算機的組織裡有一些關於文字的一些設定,一般的計算機在預設狀態就具有某些特定檔案的字尾,比如說我在上面測試所建立的檔名為wode的檔案,計算機預設的已經在wode後面新增了.jnt,如果不小心將文字建立為wode.jnt,現在我們在open函式裡依然傳入wode.jnt肯定會編譯失敗。

同時在我們編譯器為我們開啟檔案分裝了乙個專門的庫函式strerror,如果開啟檔案失敗我們可以在printf函式裡實現對strerror函式進行鏈式訪問,可以自定分析出檔案是因為什麼原因而開啟失敗

**演示:

使用strerror函式標頭檔案是errno.h

結果:

strerror函式可以接受不同的int數字,不同數字代表不同檔案開啟的錯誤

例如:printf("error: %s\n", strerror(4));

結果:

本文出自 「anser」 部落格,請務必保留此出處

使用C 語言fopen函式開啟檔案失敗

include int main void else return 0 這是一段關於fopen的使用 其中file fopen wxb.txt r 這段 fopen後面接的是 wxb.txt 檔名 r 開啟方式,這是文字方式 wxb跟fopen後面wxb.txt的檔名不一樣,你如果在源 中wxb後面...

檔案開啟失敗顯示編碼問題

window 讀取檔案可以用 但是在字串中 是被當作轉義字元來使用,所以 d a.txt 會被轉義成 d a.txt 這是正確路徑,所以不會報錯。而 c users frankyuan pictures camera roll win 20161010 08 51 57 pro.jpg 中經過轉義之...

fopen開啟檔案失敗過程分析

場景說明 協助同事解決fopen開啟檔案永遠返回 1的異常情況。在解決問題的時候,先入為主的認為是 檔案路徑出現了字元轉義的問題,根本沒有想到要列印出當前無法獲取到檔案控制代碼的錯誤,是否是檔案路徑不存在。所以一開始就是將 替換為 然後替換為 還是不行。fprintf stderr,s n stre...