什么是文件
磁盤上的文件就是文件。
在程序設計中,我們一般談的文件有兩種:程序文件和數據文件
程序文件
包括源程序文件(后綴為.c),目標文件(windows環境后綴為.obj),可執行程序(windows環境后綴為.exe)。
數據文件
文件的內容不一定是程序,而是程序運行時讀寫的數據,比如程序運行時需要從中讀取數據的文件,或者輸出內容的文件。
文件名
文件名包含三部分:文件路徑、文件名主干、文件名后綴
例如:c:\code\test.txt
文件類型
根據數據的組織形式,文件類型分為文本文件或者二進制文件
數據在內存中以二進制的形式存儲,如果不加以轉換輸出到外存,就是二進制文件,如果在外存存儲前轉換,以ASCII字符的形式存儲的文件就是文本文件
一個數據在內存中是怎么存儲的呢?
字符一律以ASCII形式存儲,數值型數據既可以用ASCII形式存儲,也可以用二進制形式存儲。
如整數10000,若以ASCII形式輸出到磁盤,則占5字節(每一個字符占一個字節),而二進制形式輸出則只占4個字節
文件緩沖區
ASNIC標準采用"緩沖文件系統"來處理數據文件
緩沖文件系統是指系統自動地在內存中為程序中每一個正在使用的文件開辟一塊"文件緩沖區"。
從內存向磁盤中輸送數據會先送到內存中的緩存區,待緩存區被裝滿后一起送到磁盤上。
如果從磁盤向計算機中讀入數據,則從磁盤文件讀取數據到內存緩沖區,待裝滿緩沖區后再從緩沖區逐個地將數據送到程序數據段(程序變量等)。緩沖區大小根據c編譯系統決定
文件指針
每個被使用的文件都在內存里開辟了一個相應的文件信息區,用來存放文件的相關信息(如文件的名字、文件的狀態、文件當前的位置等)。這些信息都是保存在一個結構體變量中的。該結構體類型是有系統聲明的,取名為FILE。
指向FILE的指針稱為文件指針
每當打開一個文件時,系統會根據文件的情況自動創建一個FILE結構的變量,并填充其中的信息,使用者不必關心其細節
文件的打開和關閉
文件在讀寫之前應打開文件,使用完成之后應關閉文件
ANSIC規定使用fopen打開文件,fclose關閉文件
FILE* fopen(const char* filename, const char* mode);
參數一為文件名,參數二為打開模式
打開成功返回文件指針,失敗則返回空指針
int fclose(FILE* stream);
關閉成功返回0,失敗返回EOF
文件有許多種打開方式,如圖
輸入和輸出
打開后可進行數據的輸入和輸出,可用以下函數進行操作
注:以下為順序讀寫函數
具體使用例
例1(附帶運行結果)
例2
例3
學會文件操作后即可將之前的通訊錄修改為文件版。
總結
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注服務器之家的更多內容!
原文鏈接:https://blog.csdn.net/iEucliwood/article/details/121129222