C檔案與檔案的操作
C檔案
檔案:儲存在外部介質上資料的集合。
在程式設計中,檔案主要分為程式檔案與資料檔案。
程式檔案:源程式檔案(字尾為.c)、目標檔案(字尾為.obj)、可執行檔案(字尾為.exe)(此檔案內容為程式程式碼);
資料檔案:程式執行中輸出到磁碟(或其他外部裝置)的資料、在程式執行過程中供讀入的資料(此檔案內容為供程式執行時讀寫的資料)。
檔案標識分為三部分:檔案路徑、檔名主幹、檔案字尾
檔案字尾 | 含義 |
---|---|
doc | Word生成的檔案 |
txt | 文字檔案 |
dat | 資料檔案 |
c | c語言源程式檔案 |
cpp | c++源程式檔案 |
for | FORTRAN源程式檔案 |
pas | Pascal源程式檔案 |
ppt | 電子幻燈檔案 |
bmp | 圖形檔案 |
資料檔案可再分為ASCLL檔案(文字檔案)和二進位制檔案(映像檔案)
typedef struct
{ short level; //快取區“滿”或“空”的程度
unsigned flags; //檔案狀態標誌
char fd; //檔案標誌符
unsigned char hold; //如快取區無內容則不讀取字元
short bsize; //快取區的大小
unsigned char*buffer; //資料快取區的位置
unsigned char*curp; //指標當前的指向
unsigned istemp; //臨時檔案指示器
short token; //用於有效性檢查
}FILE;
注:宣告FILE結構體型別的資訊需包含在標頭檔案“stdio.h”中。
在編寫程式中,開啟或關閉檔案在一般情況下,都是在對指標進行相關的操作。在開啟檔案的過程中建立指標與檔案之間的聯絡,指定一個指標變數指向該檔案,並通過此指標變數對檔案進行讀寫。
開啟檔案:為檔案建立相應的資訊區(用來存放有關檔案的資訊)和檔案緩衝區(用來暫時存放輸入輸出的資料);
關閉檔案:撤銷檔案資訊區和檔案緩衝區,使檔案指標變數不再指向該檔案,繼而使得讀寫檔案失敗。
用fopen開啟檔案
fopen的呼叫方式為:
fopen(檔名,使用檔案方式);
eg:
fopen("al","r"); // 使用讀入(“r”表示讀入)的方式開啟名稱為“al”的檔案,fopen函式的返回值是指向“al”檔案的指標(即al檔案資訊區的起始地址)。
FLFE*fp; //定義一個指向檔案的指標變數fp
fp=fopen("al","r");//將fopen函式的返回值賦給指標變數fp
檔案使用方式 | 含義 | 若指定檔案不存在 |
---|---|---|
“r”(只讀) | 為輸入資料開啟一個已存在的文字檔案 | 出錯 |
“w”(只寫) | 為輸出資料開啟一個文字檔案 | 建立新檔案 |
“a”(追加) | 向文字檔案尾新增資料 | 出錯 |
“rb”(只讀) | 為輸入資料開啟一個二進位制檔案 | 出錯 |
“wb”(只寫) | 為輸出資料開啟一個二進位制檔案 | 建立新檔案 |
“ab”(追加) | 向二進位制檔案尾新增資料 | 出錯 |
前面講了開啟檔案需呼叫fopen函式,有開啟就會有關閉,關閉檔案則需要呼叫fclose函式,其呼叫形式為:
fclose(檔案指標);
eg:
fclose(fp)
關閉檔案操作成功返回值為0,否則返回EOF(-1)。
若未關閉檔案,則會導致資料丟失。
在向檔案輸入資料時,資料先輸入到緩衝區,待緩衝區滿後才會輸出到檔案。
若緩衝區未滿而程式結束,有可能引起緩衝區內資料丟失。
而呼叫fclose函式關閉檔案時,先會把緩衝區資料輸入到磁碟檔案中再撤銷檔案資訊區,如此便可保證資料不再丟失。
詳細知識點可參考《C程式設計》—–譚浩強 著
在重新回顧學生學籍管理系統的程式時
遇到了某些語句卻不甚明白其用法
便想著要重溫這些知識點
一是提醒自己及時回顧相應知識點
二是希望可以幫助到同樣對此知識點抱有疑惑的網友們
若有錯誤,還望各位大佬們指正,在下不勝感激並會及時修改。
嗯 江湖再見啦~
相關文章
- C檔案操作
- c#檔案操作C#
- C# 檔案操作C#
- C++中的檔案操作C++
- Linux----12 檔案與檔案操作Linux
- C++寫檔案操作C++
- C語言檔案操作C語言
- C語言(檔案操作)C語言
- 要點4:C的檔案操作
- 異常與檔案操作
- C++讀寫檔案操作C++
- C++檔案讀寫操作C++
- C++ 檔案操作詳解C++
- c++ IO類,檔案操作C++
- c# 對檔案的各種操作C#
- 檔案操作
- 深入理解 C++ 中的多型與檔案操作C++多型
- C語言檔案與目錄(五)檔案鎖C語言
- C語言之標準檔案操作C語言
- c語言檔案操作相關C語言
- git的忽略檔案和刪除檔案操作Git
- C#的二進位制檔案操作C#
- C語言關於檔案操作的命令C語言
- Go檔案操作Go
- 檔案操作(下)
- lua檔案操作
- JAVA 操作檔案Java
- golang操作檔案Golang
- JavaUtils - 檔案操作Java
- perl檔案操作
- 【shell 】檔案操作
- unix檔案操作
- java 檔案操作Java
- 2.8檔案操作
- 檔案IO操作
- 05 檔案操作
- 檔案系統操作與磁碟管理
- C#檔案操作方法大全C#