檔案的相關操作函式的使用

2021-09-13 16:45:59 字數 2505 閱讀 6961

(一)檔案指標的定義

file * fp; //定義指向檔案的指標

(二)用fopen函式開啟資料檔案

fopen函式的呼叫方式為:

fopen(檔案路徑名,使用檔案方式);

系統定義了3個檔案指標變數stdin,stdout,stderr;分別指向標準輸入流、標準輸出流和標準出錯輸出流,可以通過這三個指標變數對以上3種流進行操作,他們都以終端作為輸入輸出物件,如果程式中指定要從stdin所指的檔案輸入資料,就是指從終端鍵盤輸入資料。

例:file * fp;

fp = fopen("./text.txt",「w」);

if(fp == null)

返回值:

如果fopen成功,則返回指向開啟檔案的指標,若失敗,則返回null。

(三)fclose函式關閉資料檔案

用法:fclose(檔案指標);

fclose(fp);

返回值:成功執行返回0;否則返回eof(-1);

(四)向檔案讀寫字元:

fgetc(fp):

功能:從fp指向的檔案讀入乙個字元;

返回值:讀成功,帶回所讀的字元,失敗則返回檔案結束標誌eof;

fputc(ch,fp);

功能:輸出成功,返回值就是輸出的字元;輸出失敗,則返回eof;

(五)向檔案讀寫乙個字串:

fgets(str,n,fp);

功能:從fp所指向的檔案中讀入乙個長度為n-1的字串,並在最後加乙個『\0』字元,然後把這n個字元存放到字元陣列str中;

返回值:讀成功,返回位址str,失敗則返回null。

fputs(str,fp):

功能:將str所指向的字串輸出到fp所指向的檔案中。

str可以是字串常量、字元陣列名、或字元型指標;字串末尾的『\0』不輸出。

返回值:若輸出成功,返回0,否則返回eof;

(六)用格式化的方式讀寫檔案

fprintf(檔案指標,格式字串,輸出列表);

fscanf(檔案指標,格式字串,輸入列表);

如:fprintf(fp,「%d,%6.2f」,i,f);

用fprintf和fscanf函式對磁碟檔案讀寫,使用方便,容易理解,但由於在輸入時要將檔案中的ascii碼轉換為二進位制形式再儲存在記憶體變數中,在輸出時又要將記憶體中的二進位制形式轉換成字元,要花費較多時間。因此,在記憶體與磁碟頻繁交換的情況下,最好不用fprintf和fscanf函式,而用下面的fread和fwrite函式進行二進位制的讀寫。

(七)用二進位制方式向檔案讀寫一組資料

fread (buffer,size,count,fp);

fwrite (buffer,size,count,fp);

buffer是乙個位址,對fread是用來存放從檔案讀入的資料的儲存區的位址;

對fwrite是要把此位址開始的儲存區中的資料向檔案輸出(以上指的是起始位址)。

size:要讀寫的位元組數;

count:要讀寫多少個資料項(每個資料項長度為size);

fp:file型別指標。

返回值:若執行成功,則返回值為形參count的值(乙個整數,小於或等於count),否則返回值為0;

(八)檔案位置標記的定位

rewind函式使檔案位置標記指向檔案開頭,此函式無返回值。

fseek(檔案型別指標,位移量,起始點)

功能:從起始點偏移n個位移量;

「位移量」指以「起始點」為幾點,向前移動的位元組數。位移量應是long型資料(在數字的末尾加乙個字母l,就表示是long型)。

如:fseek(fp,100l,0); 將檔案位置標記向前移到離檔案開頭100個位元組處

fseek(fp,-10l,2); 將檔案位置標記從檔案末尾處向後退10個位元組

起始點用0、1、2代替:

用ftell函式測定檔案位置標記的當前位置

如果呼叫函式時出錯(如不存在fp指向的檔案),ftell的返回值為-1l。

feof()函式

作用:檢查檔案讀寫位置標記是否移到檔案的末尾,即磁碟檔案是否結束。

如:feof(fp);

若是,則返回值為1;否則為0;

(九)檔案讀寫的出錯檢測

ferror函式

在呼叫各種輸入輸出函式時,如果出現錯誤,除了函式返回值有所反應外,還可以用ferror函式檢查,呼叫形式為:

ferror(fp);

若返回值為0,表示未出錯,若返回乙個非零值,表示出錯。

應當注意,對同乙個檔案每一次呼叫輸入輸出函式都會產生乙個新的ferror函式值,因此,應當在呼叫乙個輸入輸出函式後立即檢查ferror的值,否則資訊會丟失。在執行fopen函式時,ferror函式的初始值自動置為0。

clearerr函式

作用:使檔案錯誤標誌和檔案結束標誌置為0。

檔案操作相關函式

首先 檔案分為相對路徑和絕對路徑 比如我有乙個檔名為qaq的txt檔案 他的路徑可以是 d code test qaq.txt 這就是乙個絕對路徑 而如果當前路徑是d code,想要描述qaq.txt的話只需要輸入 test qaq.txt 而如果當前路徑是d other,想要描述qaq.txt的話...

Python檔案操作及相關函式使用

檔案開啟模式 模式 t 文字模式 預設 x 寫模式,新建乙個檔案,如果該檔案已存在則會報錯。b 二進位制模式。開啟乙個檔案進行更新 可讀可寫 u 通用換行模式 不推薦 r 以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。r 開啟乙個檔案用於讀寫。檔案指標將會放在檔案的開頭。w 開啟乙...

c c 檔案操作相關的常用函式

標籤 c c 讀寫檔案 freadandfwrite include size t fread void ptr,size t size,size t nmemb,file stream size t fwrite const void ptr,size t size,size t nmemb,fi...