
前言
上一章節主要講解結構體記憶體對齊問題,本章節主要講解C語言檔案操作,全面解析C語言檔案操作。
C語言檔案
通常,檔案用于在計算機中存儲使用者資料。換句話說,計算機使用檔案存儲資料。我們可以如下定義:檔案是存儲在輔助存儲器(如計算機的haddisk)中的資料的集合。
C語言支援兩種類型的檔案,它們如下:
文本檔案(或)ASCII檔案
二進制檔案
包含數字,字母和符号等資料的ASCII碼的檔案稱為文本檔案(或)ASCII檔案。
含位元組(0和1)形式的資料的檔案稱為二進制檔案。通常二進制檔案是文本檔案的編譯版本。
C語言檔案操作
以下是用C語言編寫的檔案上執行的操作.
建立(或)打開檔案
從檔案讀取資料
将資料寫入檔案
關閉檔案
以上所有操作都是使用C語言中可用的檔案處理功能執行的。我們将讨論檔案處理功能。
打開檔案
要建立新檔案或打開現有檔案,我們需要建立FILE類型的檔案指針。以下是用于建立檔案指針的示例代碼
FILE *f_ptr ;
我們使用預定義的方法fopen()建立新檔案或打開現有檔案。可以使用不同的模式打開檔案。考慮以下代碼:
FILE *f_ptr ; f_ptr = fopen("abc.txt", "w") ;
上面的示例代碼建立一個名為abc.txt的新檔案(如果該檔案不存在),否則将以寫入模式打開。在C語言中,可以使用不同的模式來打開檔案,這些模式如下所示:
注意
二進制檔案讀寫請使用rb,wb,ab,rb +,wb +和ab +
w方式打開檔案,檔案不存在具有建立檔案的功能,檔案存在清空檔案内容打開
a方式打開檔案,追加模式打開檔案,不清空檔案中的資料
檔案讀寫
C語言存在以下檔案讀寫操作。
fgetc()+fputc():字元方式讀寫
fgets()+fputs():字元串方式讀寫
fscanf()+fprintf():格式化讀寫
fread()+fwrite():位元組流讀寫
C語言中的字元讀寫方式示例程式
注意:一般檔案打開, 是要判斷打開檔案是否成功的,因為篇幅問題這裡就省略掉
C語言中的字元串讀寫方式示例程式
注意:字元串讀寫,會為讀取的内容末尾加上'\n'
C語言中的格式化讀寫方式示例程式
格式化讀寫其實是一種表格資料
C語言中的位元組流讀寫方式示例程式
文本檔案中顯示的内容是亂碼,很正常的情況,能成功讀寫出來即可。
檔案指針操作函數
fseek函數
函數原型:int fseek(FILE *stream, long offset, int pos);
stream:檔案指針。
offset:偏移量。
pos:指偏移方式。有如下三種值可選:
SEEK_SET 從距檔案開頭offset 位移量為新的讀寫位置.
SEEK_CUR 以目前的讀寫位置往後增加offset 個位移量.
SEEK_END 将讀寫位置指向檔案尾後再增加offset 個位移量.
說明:當pos值為SEEK_CUR 或SEEK_END 時, 參數offset 允許負
值的
出現.
給出兩種比較特别的使用方式
将檔案指針移動到開頭:fseek(fd, 0, SEEK_SET);
将檔案指針移動到結尾:fseek(fd, 0, SEEK_END);
傳回值:調用成功傳回0,失敗傳回-1,errno會存放錯誤代碼。
ftell函數
函數原型:long ftell(FILE *stream);
傳回值:檔案指針相對于檔案開頭的偏移量。
rewind函數
函數原型:void rewind(FILE *stream);
feof函數
函數原型:int feof(FILE *stream);
傳回值:如果已經到達檔案的結尾(已經将檔案的最後一個字元都讀走了),傳回0,否則傳回非0數字。
EOF
是文本檔案結束的标志。在文本檔案中,資料
以
字元的ASCⅡ碼值的形式存放,普通字元的ASCⅡ碼的範圍是32到127(十進制),EOF的16進制代碼為0XFF(十進制為-1),是以可以用EOF作為檔案的結束辨別。當把資料以二進制的形式存放到檔案中時,就有可能會将數字-1存放到檔案中,此時繼續根據EOF來判斷檔案是否結束就會出問題,為了解決這個問題,ASCI C 就提供了feof 函數。
尾言
作業:把以下表格資料存儲到檔案(資訊數可少量,詞條需齊全)
哪裡有什麼老天的眷顧,所謂的幸運和成功都源自你自身的努力和付出。請記住,你現在多走的每一步都在拉開着你和别人的差距。要做,就做生活的強者。
好了今天的知識到這裡就結束了!如果有學到知識的同學們,可以留言學到了哦!如果可以的話也是可以一鍵三連,關注加轉發和點贊。
本文分享自微信公衆号 - C語言程式設計基礎(goodStudyCode)。
如有侵權,請聯系 [email protected] 删除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。