2013-05-01 32 views
-1

如果我打開一個(比如說)二進制文件,我想追加的這兩個以下方式結束似乎對工作我混淆不同的文件模式

fileVar = fopen("FileName", "w+b"); 

fileVar = fopen("FileName", "r+b"); 

我已閱讀文檔,但我不清楚這兩種打開文件的方法之間的區別。 This網站上說w+將覆蓋文件,如果它不存在,a+將追加到該文件的末尾。我還沒有嘗試過使用a+,但它似乎與r+做同樣的事情。

問:到底什麼是打開一個文件,r+w+a+的三種方法之間的區別?

+1

很確定[手冊頁](http://www.manpagez.com/man/3/fopen/)明確指出了這一天。 – hometoast 2013-05-01 11:09:52

回答

5

r +從文件開頭開始,但不會創建新文件,如果它不存在。

w +如果文件存在,則將現有文件截斷爲零,否則將創建一個新文件。

a +如果文件存在,則從文件末尾開始,否則將創建一個新文件。

訪問模式R + W +和A +打開該文件在讀寫模式,但上述差異:

兩個R +和W +我們可以讀到,在文件中,但R寫入+不截斷(刪除)文件的內容以及它不會創建一個新文件,如果這個文件在w +中不存在時截斷文件的內容,並且如果這個文件不存在則創建一個新文件。

0

就像網站上說:

  • r+將打開文件進行讀取&寫作,但文件必須存在。
  • w+將會打開讀取&的文件,但是如果文件存在,它會截斷文件(刪除其內容)。
  • a+將會打開文件以讀取&文字,但在允許任何位置讀取時,只能寫入文件的末尾,即追加。