fopen開啟模式rb和rb 有什麼區別

時間 2021-08-11 17:10:56

1樓:匿名使用者

函式原型:file * fopen(const char * path,const char * mode);

相關函式:open,fclose,fopen_s,_wfopen

返回值:檔案順利開啟後,指向該流的檔案指標就會被返回。如果檔案開啟失敗則返回null,並把錯誤**存在errno 中

引數說明:

引數path字串包含欲開啟的檔案路徑及檔名,引數mode字串則代表著流形態。

r 以只讀方式開啟檔案,該檔案必須存在。

r+ 以可讀寫方式開啟檔案,該檔案必須存在。

rb+ 讀寫開啟一個二進位制檔案,允許讀寫資料,檔案必須存在。

w 開啟只寫檔案,若檔案存在則檔案長度清為0,即該檔案內容會消失。若檔案不存在則建立該檔案。

w+ 開啟可讀寫檔案,若檔案存在則檔案長度清為零,即該檔案內容會消失。若檔案不存在則建立該檔案。

a 以附加的方式開啟只寫檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾,即檔案原先的內容會被保留。(eof符保留)

a+ 以附加方式開啟可讀寫的檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾後,即檔案原先的內容會被保留。 (原來的eof符不保留)

wb 只寫開啟或新建一個二進位制檔案;只允許寫資料。

wb+ 讀寫開啟或建立一個二進位制檔案,允許讀和寫。

ab+ 讀寫開啟一個二進位制檔案,允許讀或在檔案末追加資料。

wx 建立文字檔案,只允許寫入資料。[c11]

wbx 建立一個二進位制檔案,只允許寫入資料。[c11]

w+x 建立一個文字檔案,允許讀寫。[c11]

wb+x 建立一個二進位制檔案,允許讀寫。[c11]

w+bx 和「wb+x」相同[c11]

以x結尾的模式為獨佔模式,檔案已存在或者無法建立(一般是路徑不正確)都會導致fopen失敗。檔案以作業系統支援的獨佔模式開啟。[c11]

2樓:

簡單的說,就是rb對二進位制只能讀不能寫,rb+可以讀,可以寫,但是寫是追加到最後面寫的

標準c庫中fopen的兩種「r」「rb」開啟方式有什麼不同?

3樓:匿名使用者

就是兩種讀的方式,"r"是以文字形式讀,"rb"是以二進位制的形式讀。

檔案在磁碟中儲存都是以二進位制的形式儲存的,但是讀的時候,如何解釋這些二進位制檔案是可以選擇的。一般有兩種方式,一種是以ascii碼的方式,也就是"r"的方式。另一種是以檔案儲存時原本的二進位制形式,也就是"rb"

4樓:天雲一號

"r"和"rb"是兩種讀取檔案的方式。

"r"是以文字形式讀,"rb"是以二進位制的形式讀。

檔案在磁碟中儲存都是以二進位制的形式儲存的。但是讀的時候,如何解釋這些二進位制檔案是可以選擇的。一般有如下兩種方式:

1、以ascii碼的方式,即將儲存的二進位制數值當做字元的ascii碼值來進行讀取,也就是"r"的方式;

2、以檔案儲存時原本的二進位制形式原樣讀出,也就是"rb"的方式。

5樓:兜裡有兩塊糖

以r 的方式開啟是開啟一個文字檔案,如a.txt檔案,可以在程式中讀取其中的資料。

以rb的方式開啟主要是針對二進位制檔案來說,也就是開啟一個二進位制檔案,如a.bin等等。然後讀取二進位制資訊。

6樓:匿名使用者

帶b的是以二進位制方式開啟的。

fopen的引數rb+和wb+有什麼區別?c++

7樓:匿名使用者

都是操作可讀可寫的二進位制檔案

區別是對於rb+如果開啟的檔案不存在 會報錯(返回null)

對於wb+ 如果檔案不存在則會建立,如果檔案存在 會覆蓋

8樓:匿名使用者

你好!!

rb+ 可讀可寫方式 開啟 一個二進位制檔案,是開啟,不存在會報錯

wb+ 可讀可寫方式 生成 一個二進位制檔案,是生成一個檔案

9樓:修者世界

rb+是開啟檔案為以二進位制格式「讀」,檔案必須存在,否則會報錯

wb+是開啟檔案為以二進位制格式「寫」,可以是新檔案。

【急】fopen()用「rb」「wb」方式讀寫檔案與「r」「w」有什麼不同

10樓:

區別在於:rb,wb讀寫的是二進位制檔案(通常字尾名.dat),r,w讀寫的是文字(通常是字尾名.txt記事本)

11樓:匿名使用者

你好,給你一個表,你看看吧,儲存下來,或許以後有用

12樓:匿名使用者

b是二進位制檔案的意思。rb開啟讀二進位制檔案,wb開啟寫二進位制檔案。

r 與w是開啟普通檔案。

c語言檔案中,「rb」和「r」有什麼區別?

13樓:匿名使用者

一、作用不同

1、rb:代表二進位制檔案,用來讀寫二進位制檔案。

二、特點不同

1、rb:檔案編碼是變長的,靈活利用率要高,而譯碼要難一些,不同的二進位制檔案譯碼方式是不同的。

2、r:是一種典型的順序檔案,其檔案的邏輯結構又屬於流式檔案。

三、優劣不同

1、rb:二進位制檔案比較節約空間,這兩者儲存字元型資料時並沒有差別。但是在儲存數字,特別是實型數字時,二進位制更節省空間。

14樓:天雲一號

"r"    為讀而開啟文字檔案

"rb"  為讀而開啟二進位制檔案

一般使用方式如下:

file *fp;  // 定義一個檔案指標fp=fopen(檔名,使用檔案方式);   // 其中使用檔案方式就是"r"或"rb"等方式

在讀取一個磁碟檔案時,文字方式讀取到檔案內容很有可能會比二進位制檔案短,因為文字方式讀取要把回車,換行兩個字元變成一個字元,相當於截短了檔案。

檔案檔案(以文字方式寫的),最好以文字方式讀。二進位制檔案(以二進位制方式寫的),最好以二進位制方式讀。不然可能會不正確。

15樓:消失掉de記憶

rb表示以二進位制讀取

c語言中,再對檔案的操作模式中,a和a+、w和w+、r和r+有什麼區別?

16樓:傲笑紅塵

這是檔案操作中的mode應用問題。

fopen(開啟檔案)

相關函式

open,fclose

表標頭檔案 #include

定義函式 file * fopen(const char * path,const char * mode);

函式說明 引數path字串包含欲開啟的檔案路徑及檔名,引數mode字串則代表著流形態。

mode有下列幾種形態字串:

r 開啟只讀檔案,該檔案必須存在。

r+ 開啟可讀寫的檔案,該檔案必須存在。

w 開啟只寫檔案,若檔案存在則檔案長度清為0,即該檔案內容會消失。若檔案不存在則建立該檔案。

w+ 開啟可讀寫檔案,若檔案存在則檔案長度清為零,即該檔案內容會消失。若檔案不存在則建立該檔案。

a 以附加的方式開啟只寫檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾,即檔案原先的內容會被保留。

a+ 以附加方式開啟可讀寫的檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾後,即檔案原先的內容會被保留。

上述的形態字串都可以再加一個b字元,如rb、w+b或ab+等組合,加入b 字元用來告訴函式庫開啟的檔案為二進位制檔案,而非純文字檔案。不過在posix系統,包含linux都會忽略該字元。由fopen()所建立的新檔案會具有s_irusr|s_iwusr|s_irgrp|s_iwgrp|s_iroth|s_iwoth(0666)許可權,此檔案許可權也會參考umask值。

返回值 檔案順利開啟後,指向該流的檔案指標就會被返回。若果檔案開啟失敗則返回null,並把錯誤**存在errno 中。

附加說明 一般而言,開檔案後會作一些檔案讀取或寫入的動作,若開檔案失敗,接下來的讀寫動作也無法順利進行,所以在fopen()後請作錯誤判斷及處理。

範例#include

main()

希望可以幫到你!

17樓:多想失去

r 開啟只讀檔案,該檔案必須存在。r+ 開啟可讀寫的檔案,該檔案必須存在。

w 開啟只寫檔案,若檔案存在則檔案長度清為0,即該檔案內容會消失。若檔案不存在則建立該檔案。w+ 開啟可讀寫檔案,若檔案存在則檔案長度清為零,即該檔案內容會消失。

若檔案不存在則建立該檔案。

a 以附加的方式開啟只寫檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾,即檔案原先的內容會被保留。a+ 以附加方式開啟可讀寫的檔案。

若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾後,即檔案原先的內容會被保留。

補充:a和a+、w和w+、r和r+是mode幾種形態字串。

18樓:匿名使用者

a和a+如果指定的檔案不存在,會出錯,而不會建立新檔案

19樓:匿名使用者

物理科學巨人霍金去世,您身體受困於輪椅,思想卻能遨遊宇宙,希望您在那邊能身體和思想都能真正自由翱翔,讓時間永留簡史吧,讓黑洞發出「聲響」吧。

r:以只讀的方式開啟文字檔案,檔案必須存在;

w:以只寫的方式開啟文字檔案,檔案若存在則清空檔案內容從檔案頭部開始寫,若不存在則根據檔名建立新檔案並只寫開啟;

a:以只寫的方式開啟文字檔案,檔案若存在則從檔案尾部以追加的方式開始寫,檔案原來存在的內容不會清除(除了檔案尾標誌eof),若不存在則根據檔名建立新檔案並只寫開啟;

r+:以可讀寫的方式開啟文字檔案,檔案必須存在;

w+:以可讀寫的方式開啟文字檔案,其他與w一樣;

a+:以可讀寫的方式開啟文字檔案,其他與a一樣;

若開啟二進位制檔案,可在後面加個b註明,其他一樣,如rb,r+b(或rb+)。

再次緬懷霍金。

街舞和Hip Hop還有R B是什么關係啊

拜託,一樓的你說什麼呢。混分的吧。hiphop呢可以說是所有街舞的總稱。裡面還分很多種細的內容。但是hiphop也可以說是單一的一種舞種。街舞總體來說還分 new school和old school。然後呢,這裡面還有jazz popping locking breking。等等。哎 其實還是比較博...

c語言檔案中rb和r有什麼區別,C語言檔案中,“rb”和“r”有什麼區別?

一 作用不同 1 rb 代表二進位制檔案,用來讀寫二進位制檔案。二 特點不同 1 rb 檔案編碼是變長的,靈活利用率要高,而譯碼要難一些,不同的二進位制檔案譯碼方式是不同的。2 r 是一種典型的順序檔案,其檔案的邏輯結構又屬於流式檔案。三 優劣不同 1 rb 二進位制檔案比較節約空間,這兩者儲存字元...

IDE模式和AHCI模式有什麼區別

通俗易懂的說法就是,ide就是ata模式,是並口傳輸模式,04年前普及的技術,理論最大133mb每秒,ahci就是sata模式,串列埠傳輸模式,新技術,傳輸速度快,理論最大300mb每秒,簡單點說就是這樣。調成ide模式是為了安裝沒有繼承sata驅動的系統,裝完系統一樣要裝好sata驅動然後把工作模...