




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
C高級語言程序設(shè)計
計算機學(xué)院許可
10.1C文件的基本知識10.2打開與關(guān)閉文件10.3順序讀寫數(shù)據(jù)文件10.4隨機讀寫數(shù)據(jù)文件10.5文件讀寫的出錯檢測第10章對文件的輸入輸出10.1C文件的基本知識在程序運行時,常常需要將一些數(shù)據(jù)(運行的最終結(jié)果或中間數(shù)據(jù))輸出到磁盤上存放起來,以后需要時再從磁盤中輸入到計算機內(nèi)存。分為ASCII(文本)文件和二進制文件舉例:10000的文本文件和二進制文件保存文本ASCII形式10.1C文件的基本知識文件名: D:\CC\temp\file.dat文件緩沖區(qū):文件路徑文件名主干文件后綴10.1C文件的基本知識typedef
struct{ short level;/*緩沖區(qū)“滿”或“空”的程度*/ unsigned flags;/*文件狀態(tài)標(biāo)志*/ char fd;/*文件描述符*/ char hold;/*如無緩沖區(qū)不讀取字符*/ short bsize;
/*緩沖區(qū)的大小*/ char* baffer;/*數(shù)據(jù)緩沖區(qū)的位置*/ char* curp;/*指針,當(dāng)前的指向*/ unsigned istemp;/*臨時文件,指示器*/ short token;/*用于有效性檢查*/
}FILE;FILEf1,*fp; //定義文件類型變量和文件類型指針變量文件類型指針10.1C文件的基本知識10.2打開與關(guān)閉文件10.3順序讀寫數(shù)據(jù)文件10.4隨機讀寫數(shù)據(jù)文件10.5文件讀寫的出錯檢測第10章對文件的輸入輸出10.2打開與關(guān)閉文件文件的打開(fopen函數(shù))ANSIC規(guī)定了標(biāo)準(zhǔn)輸入輸出函數(shù)庫,用fopen(
)函數(shù)來實現(xiàn)打開文件。fp=fopen(文件名,使用文件方式);例如:FILEfp;fp=fopen(“a1”,“r”);//以只讀的方式打開文件a110.2打開與關(guān)閉文件文件使用方式意義“r”只讀打開一個文本文件,只允許讀數(shù)據(jù)“w”只寫打開或建立一個文本文件,只允許寫數(shù)據(jù)“a”追加打開一個文本文件,并在文件末尾寫數(shù)據(jù)“rb”只讀打開一個二進制文件,只允許讀數(shù)據(jù)“wb”只寫打開或建立一個二進制文件,只允許寫數(shù)據(jù)“ab”追加打開一個二進制文件,并在文件末尾寫數(shù)據(jù)“r+”讀寫打開一個文本文件,允許讀和寫“w+”讀寫打開或建立一個文本文件,允許讀寫“a+”讀寫打開一個文本文件,允許讀,或在文件末追加數(shù)據(jù)“rb+”讀寫打開一個二進制文件,允許讀和寫“wb+”讀寫打開或建立一個二進制文件,允許讀和寫“ab+”讀寫打開一個二進制文件,允許讀,或在文件末追加數(shù)據(jù)10.2打開與關(guān)閉文件?
1)文件使用方式由r,w,a,t,b,+六個字符拼成,各字符的含義是:
r(read):讀
w(write):寫
a(append):追加
t(text):文本文件,可省略不寫
b(banary):二進制文件
+:讀和寫?
2)凡用“r”打開一個文件時,該文件必須已經(jīng)存在,且只能從該文件讀出。?
3)“w”打開的文件只能向該文件寫入。若打開的文件不存在,則以指定的文件名建立該文件,若打開的文件已經(jīng)存在,則將該文件刪去,重建一個新文件。?
4)若要向一個已存在的文件追加新的信息,只能用“a”方式打開文件。但此時該文件必須是存在的,否則將會出錯。?
5)在打開一個文件時,如果出錯,fopen將返回一個空指針值NULL。fp=fopen(文件名,使用文件方式);10.2打開與關(guān)閉文件文件的關(guān)閉(fclose函數(shù))用fclose函數(shù)關(guān)閉文件?!瓣P(guān)閉”就是使文件指針變量不指向該文件,文件指針變量與文件“脫鉤”,此后不能再通過該指針對原來與其相聯(lián)系的文件進行讀寫操作。fclose函數(shù)調(diào)用的一般形式為 fclose(文件指針);例如: fclose(fp);main(){ FILE*fp=fopen("f:\\test1","w"); charstr[]="helloworld"; if(fp==NULL) { printf("\nerroronopenc:\\test1.txt!"); return; } fputs(str,fp); fclose(fp); fp=fopen("f:\\test2","wb"); if(fp==NULL) { printf("\nerroronopenc:\\test2.txt!"); return; } fwrite(str,sizeof(str[0]),strlen(str),fp); fclose(fp);}10.1C文件的基本知識10.2打開與關(guān)閉文件10.3順序讀寫數(shù)據(jù)文件10.4隨機讀寫數(shù)據(jù)文件10.5文件讀寫的出錯檢測第10章對文件的輸入輸出10.3順序讀寫數(shù)據(jù)文件1.
fputc函數(shù)把一個字符寫到磁盤文件上去。 charch=‘a(chǎn)’; fputc(ch,fp);2.fgetc函數(shù)從指定的文件讀入一個字符,該文件必須是以讀或讀寫方式打開的。 charch; ch=fgetc(fp);10.3順序讀寫數(shù)據(jù)文件3.
fputs函數(shù)把一個字符串寫到磁盤文件上去。 char*str=“hello”; fputs(str,fp);4.fgets函數(shù)從fp指向的文件讀入一個長度為n-1的字符串,存放到str中 charstr[10]; fgets(str,6,fp);10.3順序讀寫數(shù)據(jù)文件5.fread函數(shù)和fwrite函數(shù)fread(buffer,size,count,fp);fwrite(buffer,size,count,fp);buffer:是一個指針。對fread來說,它是讀入數(shù)據(jù)的存放地址。對fwrite來說,是要輸出數(shù)據(jù)的地址(以上指的是起始地址)。size:要讀寫的字節(jié)數(shù)。count:要進行讀寫多少個size字節(jié)的數(shù)據(jù)項。fp:文件型指針。10.3順序讀寫數(shù)據(jù)文件假設(shè)學(xué)生的數(shù)據(jù)已存放在磁盤文件中,可以用下面的for語句和fread函數(shù)讀入40個學(xué)生的數(shù)據(jù): for(i=0;i<40;i++) fread(&stud[i],sizeof(structstudent_type),1,fp);同樣,以下for語句和fwrite函數(shù)可以將內(nèi)存中的學(xué)生數(shù)據(jù)輸出到磁盤文件中去: for(i=0;i<40,i++) fwrite(&stud[i]
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國磁性畫板數(shù)據(jù)監(jiān)測研究報告
- 苗圃基地建設(shè)合同范本
- 科技企業(yè)中班組質(zhì)量改進的實踐與思考
- 生鮮配送的合同范本
- 家具維修行業(yè)市場細分策略考核試卷
- 戲曲表演技巧與角色理解測試考核試卷
- 小麥加工技術(shù)創(chuàng)新趨勢考核試卷
- 期貨市場法律法規(guī)更新解讀服務(wù)考核試卷
- 建筑裝飾施工中的質(zhì)量監(jiān)督與檢查考核試卷
- 巷道式智能化孵化器行業(yè)相關(guān)投資計劃提議范本
- 數(shù)學(xué)教育的國際比較與交流
- 2023年4月自考00160審計學(xué)試題及答案含解析
- 案卷評查培訓(xùn)課件模板
- 醫(yī)院死亡證明培訓(xùn)課件
- 市級優(yōu)質(zhì)課一等獎《說和做》-七年級語文下冊同步課件(統(tǒng)編版)
- 《合同能源管理介紹》課件
- 機動絞磨安全操作規(guī)程范本
- DL-T 2578-2022 沖擊式水輪發(fā)電機組啟動試驗規(guī)程
- 兆歐表的使用課稿
- 第四課探索認(rèn)識的奧秘(導(dǎo)學(xué)案)- 高中政治統(tǒng)編版必修四 哲學(xué)與文化
- 讀書分享小巴掌童話PPT
評論
0/150
提交評論