真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C語言文件操作(1)-創(chuàng)新互聯(lián)

個人主頁:平行線也會相交
歡迎 點贊👍 收藏? 留言? 加關(guān)注💓本文由 平行線也會相交 原創(chuàng)
收錄于專欄【C/C++】
在這里插入圖片描述

創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供蜀山網(wǎng)站建設(shè)、蜀山做網(wǎng)站、蜀山網(wǎng)站設(shè)計、蜀山網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、蜀山企業(yè)網(wǎng)站模板建站服務(wù),十多年蜀山做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

本文是為學(xué)習(xí)各種文件操作函數(shù)做一個小小鋪墊,讀者如果認(rèn)為對文件這方面的內(nèi)容掌握的還可以,可直接跳轉(zhuǎn)到我的下一篇文章來學(xué)習(xí)具體的文件操作函數(shù)👉C語言之文件操作

本文目錄
  • 什么是文件
    • 程序文件
    • 數(shù)據(jù)文件
  • 文件名
  • 文件類型
  • 文件緩沖區(qū)
  • 文件指針

什么是文件

磁盤的文件是文件
但在程序設(shè)計中,我們一般讀的文件分為兩種:程序文件、數(shù)據(jù)文件。程序文件是可以操作數(shù)據(jù)文件的。
程序文件是操作我們的數(shù)據(jù)文件的。我們可以讀那個文件、可以寫那個文件、可以去編譯那個文件,即可以對那個文件進行相關(guān)的操作、編輯等等,這些文件呢就被稱為數(shù)據(jù)文件,為程序文件是可以操作我們的數(shù)據(jù)文件的。

程序文件

包括源程序文件(后綴為.c)、目標(biāo)文件(windows環(huán)境后綴為.obj)、可執(zhí)行程序(windows環(huán)境后綴為.exe)。

數(shù)據(jù)文件

文件的內(nèi)容不一定要程序,而是程序運行時讀寫的數(shù)據(jù),比如程序運行需要從中讀取數(shù)據(jù)的文件。

注意:本文討論的不是程序文件,而是我們可以被操作的數(shù)據(jù)文件。(如何把信息放到數(shù)據(jù)文件中去,如何再從數(shù)據(jù)文件中把信息拿出來。)
在之前我們所處理數(shù)據(jù)的輸入輸出都是以終端為對象的,即從終端的鍵盤輸入數(shù)據(jù),運行結(jié)果顯示到顯示器上。其實我們有時候會把信息輸出到磁盤上,當(dāng)需要的時候再從磁盤上把信息讀取到內(nèi)存中使用,這里處理的就是磁盤上文件。

文件名

一個文件要有一個唯一的文件標(biāo)識。
文件名包括3部分:文件路徑+文件名主干+文件后綴
例如:c:\code\test.txttest為文件名主干、.txt為文件后綴、前面那部分就是文件路徑。
為了方便起見,文件標(biāo)識常被稱為文件名。

文件類型

根據(jù)數(shù)據(jù)的組織形式,數(shù)據(jù)文件被稱為文本文件(文本文件里面放到就是ASICC碼代表的字符,我們在看的時候就是一堆亂碼)或者二進制文件(放的是二進制形式的文件,即數(shù)據(jù)在內(nèi)存中是怎么存的,放到文件中就怎么存,不加任何的轉(zhuǎn)換)。
數(shù)據(jù)在內(nèi)存中以二進制的形式存儲,如果不加轉(zhuǎn)換,把內(nèi)存中的數(shù)據(jù)直接輸出到外存中去(即把內(nèi)存中的數(shù)據(jù)直接輸出到文件中去,不加任何轉(zhuǎn)換放到硬盤,放到外存上去),就是二進制文件。
如果要求在外存上以ASCII碼的形式存儲,則需要在存儲前轉(zhuǎn)換,(也就是說把內(nèi)存中的數(shù)據(jù)以ASCII碼值的形式存放到外存中去,即放到文件中去)以ASICC字符的形式存儲的文件就是文本文件。
一個數(shù)據(jù)在內(nèi)存中是怎么存儲的呢?
字符一律以ASCII形式存儲,數(shù)值型數(shù)據(jù)可以用ASCII形式存儲,也可以使用二進制的形式存儲。
如有整數(shù)10000,如果以ASCII碼的形式輸出到磁盤,則硬盤中占用5個字節(jié)(每個字符一個字節(jié)),而二進制形式輸出,則磁盤中占用5個字節(jié)(每個字符都是一個字節(jié)),而二進制形式輸出,則在磁盤上只占4個字節(jié)。
在這里插入圖片描述
下面請看測試代碼:

#includeint main()
{int a = 10000;
	FILE* pf = fopen("test.txt", 'wb');//w是write的意思,而b是以二進制的形式去寫這個文件
	fwrite(&a, 4, 1, pf);//以二進制的形式寫到文件中
	//&a即數(shù)據(jù)來自于a的地址處
	//4即4個字節(jié)
	//1即寫一個這樣的數(shù)據(jù)
	//pf即放到pf維護的這個文件中去
	fclose(pf);//關(guān)閉文件
	pf = NULL;
	return 0;
}

在這里插入圖片描述

注意打開時要以二進制的形式打開,即:
在這里插入圖片描述

在這里插入圖片描述
test.txt文件中我們可以看到是10000以16進制的形式來展示的,同時為小端存儲,所以在文件中是倒著存放的,其實真正在內(nèi)存中是以二進制的形式來展示的。(注意是以二進制來進行存放的,但是要通過屏幕給我們展示出來就是以十六進制來進行展示的,即展示出來就轉(zhuǎn)換成了十六進制。)
而十六進制00 00 27 10轉(zhuǎn)換為十進制之后就是10000。
10000存到文件中去,即文本文件,存成文本的形式就是這樣的:
在這里插入圖片描述

文件緩沖區(qū)

ANSIC標(biāo)準(zhǔn)采用“緩沖文件系統(tǒng)”處理的數(shù)據(jù)文件的,所謂緩沖文件系統(tǒng)是指系統(tǒng)自動地為內(nèi)存中為程序中的每一個正在使用的文件開辟一塊“文件緩沖區(qū)”。從內(nèi)存向磁盤輸出數(shù)據(jù)會先送到內(nèi)存中的緩沖區(qū),裝滿緩沖區(qū)后才一起送到磁盤上。如果從磁盤向計算機讀入數(shù)據(jù),則從磁盤文件中讀取數(shù)據(jù)輸入到內(nèi)存緩沖區(qū)(充滿緩沖區(qū)),然后再從緩沖區(qū)逐個地將數(shù)據(jù)搜索你感到程序數(shù)據(jù)區(qū)(程序變量等)。緩沖區(qū)的大小根據(jù)C編譯系統(tǒng)決定的。
在這里插入圖片描述

文件指針

緩沖文件系統(tǒng)中,關(guān)鍵的概念是“文件類型指針”,簡稱“文件指針”。
每個被使用的文件都在內(nèi)存中開辟了一個相應(yīng)的文件信息區(qū),用來存放文件的相關(guān)信息(如文件的名字,文件狀態(tài)及文件當(dāng)前的位置,文件創(chuàng)建時間,文件大小等等)。這些信息是保存在一個結(jié)構(gòu)體變量中。該結(jié)構(gòu)體類型是由系統(tǒng)聲明的,取名FILE。
在這里插入圖片描述
當(dāng)我們打開一個文件,寫文件或者讀文件的時候,其實任何一個文件,都會有這樣一個文件信息區(qū)和一個文件對應(yīng)起來。

在這里插入圖片描述
不同的C編譯器的FILE類型包含的內(nèi)容不完全明白,但是大同小異。
每當(dāng)打開一個文件的時候,系統(tǒng)會根據(jù)文件的情況自動創(chuàng)建一個FILE結(jié)構(gòu)的變量,并填充其中的信息,使用者不必關(guān)心細(xì)節(jié)。
一般都是通過一個FILE的指針來維護這個FILE結(jié)構(gòu)的變量,這樣使用起來更加方便。
下面我們可以創(chuàng)建一個FILE*的指針變量:

FILE* pf;//文件指針變量

定義pf是一個指向FILE類型數(shù)據(jù)的指針變量。可以使pf指向某個文件的文件信息區(qū)(是一個結(jié)構(gòu)體變量)。通過該文件信息區(qū)中的信息就能夠訪問該文件。也就是說,通過文件指針變量能夠找到與它關(guān)聯(lián)的文件。
比如:
在這里插入圖片描述
當(dāng)文件在被讀取寫入的時候,文件的大小等等都會發(fā)生變化,甚至我們對這個文件進行重命名,而一旦發(fā)生變化,文件信息區(qū)里面的信息都會跟著發(fā)生變化,因為這個文件信息區(qū)是來標(biāo)識、維護該文件的,這些東西會隨著操作文件而會發(fā)生變化。
文件指針就是FILE這樣一個結(jié)構(gòu)的指針。什么意思呢?就是我們每次打開或者維護文件時都會根據(jù)這個文件的相關(guān)信息創(chuàng)建一個和它對應(yīng)的文件信息區(qū),這個文件信息區(qū)對應(yīng)的類型就是FILE類型,當(dāng)我們區(qū)維護的時候還需要去維護這個文件信息區(qū)。怎么維護呢?我們把這個文件信息區(qū)的地址拿出來并存起來,即存了一個FILE類型的這樣一個地址,這個時候就需要FILE的一個結(jié)構(gòu)指針,這個指針就被稱為文件指針。
**通過對以上內(nèi)容的學(xué)習(xí)之后我們就可以正式的學(xué)習(xí)文件,學(xué)習(xí)文件的相關(guān)操作了。感謝各位?。。?*😊

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


分享文章:C語言文件操作(1)-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://weahome.cn/article/deoejs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部