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

2021-08-04 19:17:11 字數 4851 閱讀 4679

1樓:匿名使用者

一、作用不同

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

二、特點不同

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

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

三、優劣不同

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

2樓:天雲一號

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

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

一般使用方式如下:

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

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

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

3樓:消失掉de記憶

rb表示以二進位制讀取

c語言檔案問題: 1."rb"與 "r"的含義分別是什麼 2.while(!feof(fp))是什麼意思?

4樓:

"r".為讀而開啟文字檔案.(不存在則出錯)

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

while(!feof(fp)) 檔案到尾判斷

最常用的檔案使用方式及其含義如下:

"r".為讀而開啟文字檔案.(不存在則出錯)

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

"w".為寫而開啟文字檔案.(若不存在則新建,反之,則從檔案起始位置寫,原內容將被覆蓋)

"wb".為寫而開啟二進位制檔案.

"a".為在檔案後面新增資料而開啟文字檔案.(若不存在,則新建;反之,在原檔案後追加)

"ab".為在檔案後面新增資料而開啟一個二進位制檔案.

"r+".為讀和寫而開啟文字檔案.(讀時,從頭開始;在寫資料時,新資料只覆蓋所佔的空間,其後不變)

"rb+".為讀和寫而開啟二進位制檔案.只是在隨後的讀寫時,可以由位置函式設定讀和寫的起始位置.

"w+".首先建立一個新檔案,進行寫操作,隨後可以從頭開始讀.(若檔案存在,原內容將全部消失)

"wb+".功能與"w+"同.只是在隨後的讀寫時,可以由位置函式設定讀和寫的起始位置.

"a+".功能與"a"相同;只是在檔案尾部新增新的資料後,可以從頭開始讀.

"ab+".功能與"a+"相同;只是在檔案尾部新增新資料之後,可以由位置函式設定開始讀的起始位置.

5樓:不宜然

rb 讀二進位制檔案

r讀文字檔案

while(!feof(fp))當檔案沒到結束

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

6樓:傲笑紅塵

這是檔案操作中的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()

希望可以幫到你!

7樓:多想失去

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

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

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

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

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

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

8樓:匿名使用者

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

9樓:匿名使用者

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

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

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

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

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

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

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

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

再次緬懷霍金。

c語言檔案關閉與開啟中,r +,a+ 有什麼區別

10樓:巭奧特曼

r 只讀 為輸入開啟一個文字檔案(檔案必須存在)w 只寫 為輸出開啟一個文字檔案(如沒有檔案,則新建)

a 追加 向文字檔案尾新增資料(如沒有檔案,則新建)rb 只讀 為輸入開啟一個二進位制檔案wb 只寫 為輸出開啟一個二進位制檔案ab 追加 向二進位制檔案尾新增資料r+ 讀寫 為讀寫開啟一個文字檔案(檔案必須已經存在)w+ 讀寫 為讀寫建立一個新的文字檔案a+ 讀寫 為讀寫開啟一個文字檔案(讀寫指標定位在最後)rb+ 讀寫 為讀寫開啟一個二進位制檔案wb+ 讀寫 為讀寫建立一個新的二進位制檔案ab+ 讀寫 為讀寫開啟一個二進位制檔案

11樓:匿名使用者

r+只是讀,不能寫

a+是寫,追加,不會刪掉之前的內容

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

12樓:

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

13樓:匿名使用者

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

14樓:匿名使用者

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

r 與w是開啟普通檔案。

c語言檔案讀寫方式:兩種讀寫方式r和r+到底有什麼區別啊? 5

15樓:陽頂天鹿鼎記

r 只讀 為輸入開啟一個文字檔案(檔案必須存在)w 只寫 為輸出開啟一個文字檔案(如沒有檔案,則新建)

a 追加 向文字檔案尾新增資料(如沒有檔案,則新建)rb 只讀 為輸入開啟一個二進位制檔案wb 只寫 為輸出開啟一個二進位制檔案ab 追加 向二進位制檔案尾新增資料r+ 讀寫 為讀寫開啟一個文字檔案(檔案必須已經存在)w+ 讀寫 為讀寫建立一個新的文字檔案a+ 讀寫 為讀寫開啟一個文字檔案(讀寫指標定位在最後)rb+ 讀寫 為讀寫開啟一個二進位制檔案wb+ 讀寫 為讀寫建立一個新的二進位制檔案ab+ 讀寫 為讀寫開啟一個二進位制檔案

16樓:黃曉輝

#include

#include

int main()

else

}r是開啟只讀檔案.

這是我改的,可以讀寫

17樓:f冰山

r為只讀,r+為讀寫都行

18樓:良陣

r是隻讀

讀寫是rw

c語言中與有什麼區別,c語言中 和 有什麼區別

只能註釋單行,而 可以註釋多 行。只能註釋本行後面的內容,而 註釋中間包內括的所有內容,可以跨行。是行注容釋,後面的又會被認為是註釋,而 是塊註釋,在 中的內容都是註釋。塊註釋舉例如下 abcdefkgalsdjfajsdlfkjasl jldsjg lajdfl fasdgklasdjgl fad...

c語言 i 和 i什麼區別,C語言程式設計中的 i和i 有什麼區別?

i 和 i都是c語言裡的自增,但是它們自增的順序不同。i表示,i自增1後再參與其它運算,而i 則是i參與運算後,i的值再自增1。for迴圈裡迴圈變數增值用i 而不用 i是因為在迴圈結構裡需要迴圈變數來結束迴圈,而使用i 則會導致本來應該繼續的迴圈少執行一次,所以迴圈結構裡通常都是迴圈變數在一次迴圈結...

c語言轉義字元和有什麼區別啊c語言轉義字元x和X有什麼區別啊

c語言轉義字元 x 和 x 區別為 ascii碼值不同 表示不同。一 ascii碼值不同 1 轉義字元 x 轉義字元 x 的ascii碼值為120。2 轉義字元 x 轉義字元 x 的ascii碼值為88。二 不同 1 轉義字元 x 轉義字元 x 表示後面的字元是十六進位制數。2 轉義字元 x 轉義字...