在C語言中檔案的存取方式是什麼,C語言中檔案的存取方式是什麼

時間 2022-02-05 02:25:13

1樓:夏日絕

在c語言中,開啟檔案可以指定檔案的存取方式。開啟用函式fopen。

其原型為:file * fopen(const char * path,const char * mode);

需要包含標頭檔案stdio.h。

當開啟成功時會返回file *指標,用於後續檔案的讀寫關閉等操作。引數path為檔案的路徑及檔名。mode即存取方式,包括:

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

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

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

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

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

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

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

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

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

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

c語言c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。

2樓:手機使用者

首先,你的理解有點偏差,檔案的存取方式不是由開發語言決定的,而是由檔案系統決定的,linux是用c語言開發的,其檔案系統的存取方式有三種

1. 順序存取

順序存取是按照檔案的邏輯地址順序存取。

?? 固定長記錄的順序存取是十分簡單的。讀操作總是讀出上一次讀出的檔案的下一個記錄,同時,自動讓檔案記錄讀指標推進,以指向下一次要讀出的記錄位置。

如果檔案是可讀可寫的。再設定一個檔案記錄指標,它總指向下一次要寫入記錄的存放位置,執行寫操作時,將一個記錄寫到檔案 末端。允許對這種檔案進行前跳或後退n(整數)個記錄的操作。

順序存取主要用於磁帶檔案,但也適用於磁碟上的順序檔案。

?? 可變長記錄的順序檔案,每個記錄的長度資訊存放於記錄前面一個單元中,它的存取操作分兩步進行。讀出時,根據讀指標值先讀出存放記錄長度的單元 。

然後,得到當前記錄長後再把當前記錄一起寫到指標指向的記錄位置,同時,調整寫指標值 。

由於順序檔案是順序存取的,可採用成組和分解操作來加速檔案的輸入輸出。

2. 直接存取(隨機存取法)

很多應用場合要求以任意次序直接讀寫某個記錄。例如,航空訂票系統,把特定航班的所有資訊用航班號作標識,存放在某物理塊中,使用者預訂某航班時,需要直接將該航班的資訊取出。直接存取方法便適合於這類應用,它通常用於磁碟檔案。

為了實現直接存取,一個檔案可以看作由順序編號的物理塊組成的,這些塊常常劃成等長,作為定位和存取的一個最小單位,如一塊為1024位元組、4096位元組,視系統和應用而定。於是使用者可以請求讀塊22、然後,寫塊48,再讀塊9等等。直接存取檔案對讀或寫塊的次序沒有限制。

使用者提供給作業系統的是相對塊號,它是相對於檔案開始位置的一個位移量,而絕對塊號則由系統換算得到。

3. 索引存取

第三種型別的存取是基於索引檔案的索引存取方法。由於檔案中的記錄不按它在檔案中的位置,而按它的記錄鍵來編址,所以,使用者提供給作業系統記錄鍵後就可查詢到所需記錄。

通常記錄按記錄鍵的某種順序存放,例如,按代表健的字母先後次序來排序。對於這種檔案,除可採用按鍵存取外,也可以採用順序存取或直接存取的方法。資訊塊的地址都可以通過查詢記錄鍵而換算出。

實際的系統中,大都採用多級索引,以加速記錄查詢過程。

c語言中檔案的存取方式是什麼

3樓:

二進位制方式 和 文字方式。

fopen 裡可以定義 r,w,a,b 組合

順序存取 或 隨機存取(用fseek等函式幫助)

4樓:匿名使用者

順序存取和隨機存取吧

又是選擇?

c語言資料檔案有幾種儲存方式?每種儲存形式各有什麼特點?

5樓:浪漫經典

一、auto auto稱為自動變數。 區域性變數是指在函式內部說明的變數(有時也稱為自動變數)。用關鍵字auto進7行說明, 當auto省略時, 所有的非全程變數都被認為是區域性變數, 所以auto實際上從來不用。

區域性變數在函式呼叫時自動產生, 但不會自動初始化, 隨函式呼叫的結束, 這個變數也就自動消失了, 下次呼叫此函式時再自動產生, 還要再賦值, 退出時又自動消失。 二、static static稱為靜態變數。根據變數的型別可以分為靜態區域性變數和靜態全程變數。

1. 靜態區域性變數 它與區域性變數的區別在於: 在函式退出時, 這個變數始終存在, 但不能被其它、函式使用, 當再次進入該函式時, 將儲存上次的結果。

其它與區域性變數一樣。 2. 靜態全程變數 turbo c2.

0允許將大型程式分成若干獨立模組檔案分別編譯, 然後將所有模組的目標檔案連線在一起, 從而提高編譯速度, 同時也便於軟體的管理和維護。靜態全程變數就是指只在定義它的原始檔中可見而在其它原始檔中不可見的變數。它與全程變數的區別是:

全程變數可以再說明為外部變數(extern), 被其它原始檔使用,而靜態全程變數卻不能再被說明為外部的, 即只能被所在的原始檔使用。 三、extern extern稱為外部變數。為了使變數除了在定義它的原始檔中可以使用外, 還要被其它檔案使用。

因此, 必須將全程變數通知每一個程式模組檔案, 此時可用extern來說明。 四、register register稱為暫存器變數。它只能用於整型和字元型變數。

定義符register說明的變數被turbo c2.0儲存在cpu的暫存器中, 而不是象普通的變數那樣儲存在記憶體中, 這樣可以提高運算速度。但是turbo c2.

0只允許同時定義兩個暫存器變數,一旦超過兩個, 編譯程式會自動地將超過限制數目的暫存器變數當作非暫存器變數來處理。因此, 暫存器變數常用在同一變數名頻繁出現的地方。另外, 暫存器變數只適用於區域性變數和函式的形式引數, 它屬於auto型變數,因此, 不能用作全程變數。

定義一個整型暫存器變數可寫成: register int a;

6樓:匿名使用者

c語言中有兩種存取資料的方式。

① 順序存取:當「開啟」檔案進行讀或寫操作時總是從檔案的開頭開始,從頭到尾順序讀或寫。

② 直接存取:又稱隨機存取檔案,可以通過呼叫c語言的庫函式來指定開始讀(寫)的位元組號,然後直接對此位置上的資料進行讀或寫操作。

常用的檔案存取方式有哪三種

7樓:

①空白檔案目錄:這種方法將盤空間的一個未分配區域稱為一個空白檔案,系統為所有的空白檔案建立一個目錄,每個空白檔案在這個目錄中建立一個表目。

②空白塊鏈:這種方法將盤上的所有空白塊用連結指標或索引結構組織成一個空白檔案。

③位示圖:它將檔案儲存器的儲存空間建立一張位示圖,用以反映整個盤空間的分配情況。

8樓:

doctxt

docx好像是這三種吧

c 語言中n的意思是什麼,在c 語言中while(n 的意義是什麼?怎麼用?

n 不是換行,換行是 n,轉義字元是以 開頭,這個是 開頭的,如果樓主是 cout n 這種書寫,在vc 6.0中將會導致編譯器執行運算子過載的操作,經過無數的庫函式呼叫後,最終得到一個12142的數值,若樓主採用cout n 21.1111這種格式的寫法,由於沒有換行操作,將會在21前面加上一個1...

在C語言中是什麼意思,C語言中 c 是什麼意思?

勢如雲 這是c語言的邏輯運算子 異或 這個 講的非常詳細,我摘抄了一些,詳細的你看以看看。有很例子,好懂!邏輯運算子把各個運算的變數 或常量 連線起來組成一個邏輯表示式。邏輯運算子有4個,它們分別是 邏輯非 邏輯或 邏輯與 異或 在位運算裡面還有 位與 位或 的運算。什麼是邏輯運算 邏輯運算用來判斷...

在c語言中,在c語言中s 0 0是什麼意思?

天雲小店 首先糾正一下,應該是s 0 0 少了單引號 s 0 0 表示將字元s 0 的ascii碼與字元0的ascii碼相減,如果s 0 是字元0 9,則表示將該字元變為對應的數字 int型 比如 char s 3 123 printf d n s 0 0 輸出1,將字元1變為數字1 int型 在c...