




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、LOGOLOGO掌握文件類型指針(FILE類型指針)的概念、存儲方式和文件打開方式Teacher teaching designCONTENTS 目 錄文件概述文件打開與關(guān)閉案例分析仿真演練文件概述PART 01C語言中的文件是流式文件,即一個C文件就是上述的字節(jié)流或者二進制流二進制文件可以節(jié)省數(shù)據(jù)的存儲空間和縮短數(shù)據(jù)的訪問時間把數(shù)據(jù)按其在內(nèi)存中的存儲形式存放在外存中的文件稱為二進制文件二進制文件“文件”是一種有序的數(shù)據(jù)集合,通常存儲在計算機的外部存儲介質(zhì)上。系統(tǒng)和用戶都可以將具有一定獨立功能的程序段、程序模塊、數(shù)據(jù)等命名存為文件。定義我們把數(shù)據(jù)按其ASCII碼形式存放的文件稱為ASCII文件
2、也叫文本文件文本文件文件的定義及存儲方式ASCII碼: 00110101 00110110 00110111 00111000十進制碼:5 678共占用4個字節(jié)。按ASCII碼形式存儲,則將5678按字符形式一一將其對應(yīng)的ASCII碼存儲在磁盤上,占四個字節(jié)。數(shù)據(jù)5678的存儲形式為:文件的存儲二進制碼: 00110101 00110110 00110111 00111000只占二個字節(jié)。二進制文件雖然也可在屏幕上顯示,C系統(tǒng)在處理這些文件時,并不區(qū)分類型,都看成是字符流,按字節(jié)進行處理。ASCII碼文件可在屏幕上按字符顯示,例如源程序文件就是ASCII文件,用DOS命令TYPE可顯示文件的內(nèi)
3、容。由于是按字符顯示,因此能讀懂文件內(nèi)容。C系統(tǒng)在處理這些文件時,輸入輸出字符流的開始和結(jié)束只由程序控制而不受物理符號(如回車符)的控制。 因此也把這種文件稱作“流式文件”。ASCII文件二進制文件文件的存儲typedef struct shortlevel;/* 緩沖區(qū)“空”或者“滿”的程度 */unsignedflags;/* 文件狀態(tài)標志 */charfd; /* 文件描述符 */unsigned charhold; /* 若沒有緩沖區(qū)不讀取字符 */shortbsize; /* 緩沖區(qū)大小,一般512字節(jié) */unsigned char*buffer;/* 緩沖區(qū)的位置 */unsig
4、ned char*curp; /* 當前的指針指向 */unsignedistemp; /* 臨時文件,指示器 */shorttoken; /* 用作有效性檢查 */FILE;FILE結(jié)構(gòu)體類型的定義系統(tǒng)為文件在內(nèi)存中自動開辟一個緩沖區(qū)來存放文件的信息,C語言是用一個結(jié)構(gòu)體變量來存放這些信息的,通常由系統(tǒng)定義了FILE結(jié)構(gòu)體類型,該結(jié)構(gòu)類型由系統(tǒng)定義、取名為FILE。概念結(jié)構(gòu)類型名“FILE”必須大寫。文件類型指針概念表示fp是一個指向FILE類型結(jié)構(gòu)體的指針變量??梢允筬p指向某一個文件的結(jié)構(gòu)體變量,從而通過該結(jié)構(gòu)體變量中的文件信息能夠訪問該文件。FILE*fp;定義格式*文件類型指針概念文
5、件打開與關(guān)閉PART 02文件在進行讀寫操作之前要先打開,使用完畢要關(guān)閉。實際上是建立文件的各種有關(guān)信息,并使文件指針指向該文件,以便進行其它操作打開文件即斷開指針與文件之間的聯(lián)系,也就是禁止再對該文件進行操作。關(guān)閉文件在語言中,文件操作都是由庫函數(shù)來完成的。添加標題內(nèi)容該函數(shù)返回一個指向FILE類型的指針,如果為空指針NULL,則表示文件打開錯誤,通常在讀寫文件之前來檢驗打開文件是否正確返回值2如:if ( (fp = fopen (test.txt , w) = NULL)出錯處理 “文件指針名”必須是被說明為FILE 類型的指針變量;“文件名”是被打開文件的文件名;“打開文件方式”是指文
6、件的類型和操作要求。“文件名”是字符串常量或字符串數(shù)組。3調(diào)用的一般形式:文件指針名=fopen(文件名,打開文件方式);文件的打開(fopen函數(shù))1文件的打開根據(jù)對文件的操作不同,可以不同方式打開文件文件的操作方式 r(read): 讀 w(write): 寫 a(append): 追加 t(text): 文本文件,可省略不寫 b(banary): 二進制文件 +: 讀和寫六個字符的含義1文件使用方式由r,w,a,t,b,+六個字符拼成文件的打開若要向一個已存在的文件追加新的信息,只能用“a”方式打開文件。但此時該文件必須是存在的,否則將會出錯。追加模式用“w”打開的文件只能向該文件寫入。
7、若打開的文件不存在,則以指定的文件名建立該文件,若打開的文件已經(jīng)存在,則將該文件刪去,重建一個新文件。凡用“r”打開一個文件時,該文件必須已經(jīng)存在,且只能從該文件讀出。只讀模式文件的打開方式只寫模式 if(fp=fopen(c:hzk16,rb)=NULL) printf(nerror on open c:hzk16 file!); getch(); exit(1);在打開一個文件時,如果出錯,fopen將返回一個空指針值NULL。在程序中可以用這一信息來判別是否完成打開文件的工作,并作相應(yīng)的處理。因此常用以下程序段打開文件:把一個文本文件讀入內(nèi)存時,要將ASCII碼轉(zhuǎn)換成二進制碼,而把文件以
8、文本方式寫入磁盤時,也要把二進制碼轉(zhuǎn)換成ASCII碼,因此文本文件的讀寫要花費較多的轉(zhuǎn)換時間。對二進制文件的讀寫不存在這種轉(zhuǎn)換。溫馨提示文件的打開fclose函數(shù)用來關(guān)閉一個由fopen函數(shù)打開的流文件,把緩沖區(qū)里的內(nèi)容傳給文件。因此必須在程序結(jié)束前關(guān)閉文件,否則會引起數(shù)據(jù)丟失、文件損壞及其他錯誤。int fclose(FILE *fp);調(diào)用方式該函數(shù)返回一個整型值,如果文件關(guān)閉成功,則返回值等于0,否則表示出錯。fclose函數(shù)文件的關(guān)閉打開一個c盤test目錄下的文本文件readme.txt用以讀取其中的內(nèi)容,然后關(guān)閉。例題感知#include void main( ) FILE *fp
9、; fp = fopen(c:testreadme.txt, rt); if(fp=fopen(c:hzk16,rb)=NULL) printf(nerror on open c:hzk16 file!); getch(); exit(1); fclose(fp);應(yīng)用舉例案例分析交流提升PART 03A)文本文件和數(shù)據(jù)文件 B)文本文件和二進制文件 C)數(shù)據(jù)文件和二進制文件 D)數(shù)據(jù)代碼文件C語言可以處理的文件類型是( )C語言把文件看作是一個字符的序列,即由一個個字符的數(shù)據(jù)流組成,一個文件是一個字符流。能對數(shù)據(jù)流處理的文件形式只能是文本文件和二進制文件解析案例分析答案為B下列語句中,將C定
10、義為文件型指針的是()A) FILE c; B) FILE *c; C) file c; D)file *c; 文件控制塊的類型已由系統(tǒng)命名為FILE.所以定義文件指針變量是C,就得用代碼:“FILE *c;”解析案例分析下述關(guān)于C語言文件操作的結(jié)論中,( )是正確的。A)對文件操作必須先關(guān)閉文件 B)對文件操作必須先打開文件C)對文件操作順序無要求 D)對文件操作前必須先測試文件是否存在,然后再打開文件解析對文件進行讀寫操作之前必須先打開文件,打開文件意味著將文件與一個指針相連,然后才能通過指針操作文件。通過打開文件也可以測試文件是否存在案例分析若要打開已經(jīng)存在的非空文件”FILE”進行修改
11、,正確的打開語句是( )A)fp=fopen(”FILE”,”r”); B)fp=fopen(”FILE”,”ab+”); C)fp=fopen(”FILE”,”w+”); D)fp=fopen(”FILE”,”r+”);解析fopen()函數(shù)的功能是以適當?shù)奈募J酱蜷_指定的文件,若指定的文件不能打開,該函數(shù)返回0,否則返回非0值。要對存在的文件進行修改,則說明對文件要進行讀寫操作。案例分析仿真演練體驗探索PART 041、file1.txt文件已經(jīng)存在,執(zhí)行fopen(“file1.txt”,”r+”)的功能是( )。A)打開file1.txt文件,清除原有的內(nèi)容;B)打開file1.tx
12、t文件,只能寫入新的內(nèi)容;C)打開file1.txt文件,只能讀取原有內(nèi)容;D)打開file1.txt文件,可以讀取和寫入新的內(nèi)容;仿真演練2、若要打開A盤上user子目錄下名為abc.txt的文本文件進行讀、寫操作,下面符合此要求的函數(shù)調(diào)用是( ) 。 A) fopen(A:userabc.txt,r) B) fopen(A:userabc.txt,r+)C) fopen(A:userabc.txt,rb) C) fopen(A:userabc.txt,w)添加標題內(nèi)容3、以下敘述中錯誤的是( ) A)C語言中對二進制文件的訪問速度比文本文件快 B)C語言中,隨機文件以二進制代碼形式存儲數(shù)據(jù) C)語句 FILE fp; 定義了一個名為fp的文件指針 D)C語言中的文本文件以ASCII碼形式存儲數(shù)據(jù)仿真演練4、
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 玻璃企業(yè)歸誰管理制度
- 班級同桌日常管理制度
- 瓷土礦山安全管理制度
- 生產(chǎn)報廢過程管理制度
- it合同管理制度
- 業(yè)主出入管理制度
- 業(yè)務(wù)收銀管理制度
- 嚴格護理管理制度
- 中央供料管理制度
- 中學(xué)實驗管理制度
- 護理實習(xí)生崗前動員大會
- 2024-2024-《電子商務(wù)系統(tǒng)規(guī)劃與設(shè)計》課程試卷
- 【MOOC】國際商務(wù)-暨南大學(xué) 中國大學(xué)慕課MOOC答案
- 英語詞根大全(共910個)
- 2024年北京大學(xué)強基計劃物理試題(附答案)
- 礦山安全監(jiān)測預(yù)警
- 計算機網(wǎng)絡(luò)與信息安全(2024年版)課件全套 李全龍 第01-10章 計算機網(wǎng)絡(luò)與信息安全概述- 網(wǎng)絡(luò)安全協(xié)議與技術(shù)措施
- 廣西桂林市(2024年-2025年小學(xué)五年級語文)部編版期末考試(上學(xué)期)試卷及答案
- 第八屆全國醫(yī)藥行業(yè)特有職業(yè)技能競賽(中藥調(diào)劑員)考試題及答案
- 護士進修手冊
- 廣東版-開心學(xué)英語六年級下冊教案
評論
0/150
提交評論