檔案的讀寫操作

2021-07-09 17:19:43 字數 2469 閱讀 8557

1. 讀寫字元函式fgetc(),fputc()

int fgetc(file *stream);

將流指標指向的檔案中的乙個字元輸出。若檔案指標指到檔案尾,會遇到檔案結束標誌eof(-1),我們可以通過檢查該函式的返回值是否是-1來判斷是否已讀到檔案尾。

int fputc(int ch,file *stream);

將字元變數ch的值寫到流指標指定的檔案中去,若是stdout是標準輸出(顯示器),將會在顯示器上列印出來。

舉例1:

#include "stdafx.h"

#include #include using namespace std;

int main()

while((ch=fgetc(fp))!=eof)

fputc(ch,stdout);

printf("\n");

fclose(fp);

system("pause");

return 0;

}

用唯讀方式開啟乙個文字檔案,並逐字元讀取和輸出。

輸出結果:

2. 讀寫字串函式fgets(),fputs(),檢測檔案結束符函式feof()

char *fgets(char *buf, int bufsize, file *stream);

從檔案結構體指標stream中讀取資料,每次讀取一行。讀取的資料儲存在buf指向的字元陣列中,每次最多讀取bufsize-1個字元(第bufsize個字元賦'\0').如果檔案中的該行,不足bufsize個字元,則讀完該行就結束。如若該行(包括最後乙個換行符)的字元數超過bufsize-1,則fgets只返回乙個不完整的行.但是,緩衝區總是以null('\0')字元結尾,對fgets的下一次呼叫會繼續讀該行。函式成功將返回buf,失敗或讀到檔案結尾返回null。因此我們不能直接通過fgets的返回值來判斷函式是否是出錯而終止的,應該借助feof函式或者ferror函式來判斷。

int fputs(char *str,file *stream);

向指定的檔案寫入乙個字串(不自動寫入字串結束標記符『\0』)。成功寫入乙個字串後,檔案的位置指標會自動後移,返回值為非負整數;否則返回eof(符號常量,其值為-1)。

int feof(file *stream);

檢測流上的檔案結束符,如果檔案結束,則返回非0值,否則返回0.

eof是文字檔案結束的標誌。在文字檔案中,資料是以字元的ascⅱ**值的形式存放,普通字元的ascⅱ**的範圍是32到127(十進位制),eof的16進製制**為0xff(十進位制為-1),因此可以用eof作為檔案結束標誌。

舉例2:

#include "stdafx.h"

#include #include using namespace std;

int main()

while(!feof(fp))

fclose(fp);

system("pause");

return 0;

}

輸出結果:

可以看出文字文件中有兩行,中間有乙個換行符。

3. 讀寫流檔案流函式fread(),fwrite()

fread函式原型:

size_t fread ( void *buffer, size_t size, size_t count, file *stream) ;
引數:

size:要讀的每個資料項的位元組數,單位是位元組,一般是1.

count:要讀的資料項的個數

stream:檔案輸入流

返回值:實際讀取的元素個數。

fwrite函式原型:

size_t fwrite(const void* buffer, size_t size, size_t count, file* stream);
引數:

size:要寫的每個資料項的位元組數。

count:要寫的資料項的個數。

stream:檔案指標

返回值:實際寫入的資料塊數目。

#include "stdafx.h"

#include #include #include using namespace std;

int main()

{ /*#ifdef __cplusplus

cout<

檔案的讀寫操作

說明 首先以讀寫方式開啟 r w a 都可以,不過要注意讀寫位置指標分別指向檔案頭 檔案頭 檔案尾 一次讀乙個字元 此時讀寫位置指標指向此位元組後面,判斷後,若要轉換,移動讀寫位置指標fseek fp,1l,seek cur 再寫入,由於在c中規定 以上述三種方式開啟檔案,既可讀又可寫,但 在沒有插...

檔案的讀寫操作

1.read 會一次性讀取檔案的全部內容。2.readline 每次讀取一行,並且自帶換行功能,每一行末尾會讀到 n。3.readlines 一次性以行的形式讀取檔案的所有內容並返回乙個list,需要去遍歷讀出來。4.file控制代碼是乙個可迭代的物件因此,可以迴圈讀取檔案中的內容,每次讀一行。a ...

檔案的讀寫操作

檔案的讀操作 open 第乙個引數必須有,表示檔案的絕對路徑或者相對路徑 第二個引數mode,表示檔案開啟的方式 r 讀 w 寫 a 追加 r r w 可讀可寫,檔案若不存在就報錯 ioerror w w r 可讀可寫,檔案若不存在就建立 a a r 可追加可寫,檔案若不存在就建立 對應的,如果是二...