版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
文件概述文件操作文件概述在程序運行時,程序本身和數(shù)據(jù)一般都存放在內(nèi)存中。當(dāng)程序運行結(jié)束后,存放在內(nèi)存中的數(shù)據(jù)被釋放如果需要長期保存程序運行所需的原始數(shù)據(jù),或程序運行產(chǎn)生的結(jié)果,就必須以文件形式存儲到外部存儲介質(zhì)上
文件是指存放在外部存儲介質(zhì)上的數(shù)據(jù)集合每個文件有唯一的文件名(主名.后綴)來標(biāo)識。計算機實現(xiàn)按名對文件進行讀、寫等有關(guān)操作廣義上,操作系統(tǒng)將每一個與主機相聯(lián)的輸入輸出設(shè)備都看作是文件。(顯示器、打印機是輸出文件,鍵盤是輸入文件)數(shù)據(jù)文件的存儲形式文本文件:每個字符用一個ASCII碼存儲(即一個字符占一個字節(jié))二進制文件:以數(shù)據(jù)在內(nèi)存中的形式原樣存于磁盤存儲整數(shù)1268例‘1’的ASCII碼00110001001100100011011000111000‘2’的ASCII碼‘6’的ASCII碼‘8’的ASCII碼文本文件形式00000100111101001268的二進制數(shù)(補碼)二進制文件形式說明文本文件的每1個字節(jié)存儲1個字符,因而便于對字符進行逐個處理。但一般占用存儲空間較多,而且要花費轉(zhuǎn)換時間(二進制與ASCII碼之間的轉(zhuǎn)換)二進制文件是把內(nèi)存中的數(shù)據(jù),原樣輸出到磁盤文件中??梢怨?jié)省存儲空間和轉(zhuǎn)換時間,但1個字節(jié)并不對應(yīng)1個字符,不能直接輸出字符形式標(biāo)準(zhǔn)/非標(biāo)準(zhǔn)文件系統(tǒng)標(biāo)準(zhǔn)文件系統(tǒng):利用緩沖區(qū)將對磁盤文件進行操作的文件系統(tǒng)稱為緩沖(或高層)文件系統(tǒng),用戶使用方便從內(nèi)存向磁盤輸出數(shù)據(jù)時,必須首先輸出到緩沖區(qū)中。待緩沖區(qū)裝滿后,再一起輸出到磁盤文件中從磁盤文件向內(nèi)存讀入數(shù)據(jù)時,則正好相反:首先將一批數(shù)據(jù)讀入到緩沖區(qū)中,再從緩沖區(qū)中將數(shù)據(jù)逐個送到程序數(shù)據(jù)區(qū)非標(biāo)準(zhǔn)文件系統(tǒng):不使用緩沖區(qū)的磁盤文件系統(tǒng)稱為非緩沖(或低層)文件系統(tǒng)。編程難度較大,但程序的執(zhí)行效率高,占用內(nèi)存資源較少在C語言中,利用I/O庫函數(shù)完成文件操作程序數(shù)據(jù)區(qū)輸出文件緩沖區(qū)輸入輸入文件緩沖區(qū)輸出輸入磁盤內(nèi)存標(biāo)準(zhǔn)c采用緩沖文件系統(tǒng),其原理圖如下:輸出文件指針(指向文件的指針)緩沖文件系統(tǒng)為每個使用的文件在內(nèi)存中開辟一存儲區(qū)存放其相關(guān)信息,這些信息用一個結(jié)構(gòu)體變量保存,該結(jié)構(gòu)體類型的名字是FILE
程序通過FILE類型指針建立和文件的聯(lián)系,進行關(guān)于文件的一切操作定義形式:FILE*指針變量名;FILE*fp;例打開文件將文件信息從磁盤裝入計算機內(nèi)存(或新建一個文件),建立文件的各種有關(guān)信息,并使文件指針指向該文件,即建立文件類型指針與文件名之間的關(guān)聯(lián)filename:文件名(可以包含驅(qū)動器、路徑、文件名、擴展名)mode:打開方式FILE*:返回值如果成功打開,返回一個指向被打開文件的文件信息區(qū)的起始地址如果打開失敗,返回一個NULL指針函數(shù)原型:
打開文件的庫函數(shù)fopenFILE*fopen(char*filename,char*mode);文件打開方式參數(shù)
“r”(只讀)為輸入打開一個文本文件“w”(只寫)為輸出打開一個文本文件“a”(追加)向文本文件尾增加數(shù)據(jù)“rb”(只讀)為輸入打開一個二進制文件“wb”(只寫)為輸出打開一個二進制文件“ab”(追加)向二進制文件尾增加數(shù)據(jù)“r+”(讀寫)為讀/寫打開一個文本文件“w+”(讀寫)為讀/寫建立一個新的文本文件“a+”(讀寫)為讀/寫打開一個文本文件“rb+”(讀寫)為讀/寫打開一個二進制文件“wb+”(讀寫)為讀/寫建立一個新的二進制文件“ab+”(讀寫)為讀/寫打開一個二進制文件r:readw:writea:appendb:binary+:讀/寫文件操作方式的說明用”r”方式打開的文件只能用于向計算機輸入數(shù)據(jù),而且該文件應(yīng)該已經(jīng)存在用”w”方式打開的文件只能用于向該文件寫數(shù)據(jù),而不能用來向計算機輸入。
如果不存在該文件,則在打開時建立一個。
如果存在該文件,則新寫入的數(shù)據(jù)將覆蓋掉以前的數(shù)據(jù)如果希望向文件末尾添加新的數(shù)據(jù)(不希望刪除原有數(shù)據(jù)),則應(yīng)該用”a”方式打開用”r+”、”w+”、”a+”方式打開的文件可以用來輸入和輸出數(shù)據(jù)在程序開始運行時,系統(tǒng)自動打開以下標(biāo)準(zhǔn)文件,并自動地定義了對應(yīng)的FILE結(jié)構(gòu)指針變量【例1:】打開D盤根目錄下的myfile.c文件,驗證文件能否正確打開#include<stdio.h>voidmain(){FILE*fa;//定義文件指針變量if((fa=fopen(”d:\\myfile.c”,”r”))==NULL){printf(“\nCannotopenthefile!”);exit(0);//退出}…………}關(guān)閉文件
函數(shù)原型:將fp指向的緩沖區(qū)中的數(shù)據(jù)存放到外存儲器的文件中,然后釋放該緩沖區(qū),使文件指針變量不再指向與該文件對應(yīng)的FILE結(jié)構(gòu),從而斷開與文件的關(guān)聯(lián)操作正常返回0,否則返回EOF(是在stdio.h文件中定義的符號常量,值為-1)如果不關(guān)閉文件,可能會丟失數(shù)據(jù);并且一個C程序能同時打開的文件數(shù)有限,應(yīng)該養(yǎng)成在使用完文件后關(guān)閉文件的習(xí)慣fclose(文件指針);FILE*fp;…fclose(fp);例文件操作的一般步驟//定義文件指針變量FILE*fp;//打
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東海洋大學(xué)《環(huán)境工程制圖與CAD》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東工商職業(yè)技術(shù)大學(xué)《和聲(2)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東潮州衛(wèi)生健康職業(yè)學(xué)院《藏族文化概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東財經(jīng)大學(xué)《內(nèi)燃機設(shè)計》2023-2024學(xué)年第一學(xué)期期末試卷
- 社保統(tǒng)計培訓(xùn)課件
- 安全運輸課件
- 《組織環(huán)境與文化》課件
- 培訓(xùn)體系課件要求
- 贛州師范高等專科學(xué)?!兜乩硇畔⑾到y(tǒng)開發(fā)》2023-2024學(xué)年第一學(xué)期期末試卷
- 《輔助技能》課件
- 抗腫瘤藥物臨床管理辦法培訓(xùn)
- 福建省福州市2023-2024學(xué)年高一上學(xué)期1月期末地理試題(解析版)
- 預(yù)防性侵害安全教育
- 科大訊飛招聘在線測評題
- 科學(xué)備考講解模板
- 譯林小學(xué)二年級上冊英語知識綜合訓(xùn)練50題含答案
- 2024年1月浙江省普通高校招生選考科目考試思想政治試題(含答案)
- 中國大數(shù)據(jù)產(chǎn)業(yè)發(fā)展指數(shù)報告(2024版)
- 帶封面的新員工入職登記表
- 醫(yī)院教學(xué)工作匯報
- 小學(xué)生經(jīng)典閱讀英語短文100篇
評論
0/150
提交評論