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

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

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+)。

再次緬懷霍金。

有什麼好聽的r b傷感歌曲

超級傷感 1 當我孤獨的時候還可以抱著你 鄭源 2 無情的溫柔 鄭源 3 女人的眼淚 南妮 4 也許不該相愛 郝強 5 錯誤的選擇 段千尋 1 為愛傷心為你痛 張克帆 2 不愛我就離開我 羅瑜 3 塵緣若夢 王強 1 你就是我想要的人 老貓 2 發現 路綺歐 3 我最愛的人 阿華 4 其實我很在乎你...

基級分壓式射極偏置電路中的rb1和rb2怎麼取合適

一般採用rb1,rb2之電阻的迴路都會有一顆發射極電阻對地。如果發射極電壓設計為2v 這個是一般線路設計都會考量的 當然可以是2,或者其它 最好不要低於1v 如果發射極 2v,然基極 2.7v 如果供電電壓vcc 10v vth vcc rb2 rb1 rb2 rb rb1 rb2 等效輸入電阻 如...

hiphop嘻哈說唱rap饒舌rb有什麼區別

糖糖愛彥 rap 說唱 張口就來的。是乙個黑人俚語中的詞語,相當於 談話 talking 歌曲 周杰倫,歡子 hiphop 是起源70年代美國黑人區,一類流行文化包括rap 舞蹈形式,塗鴉藝術和服飾等流行時尚。今天這個詞被人們普遍認為是 rap 的同義詞。歌曲 周杰倫的歌曲 r b 節奏布魯斯,近年...