大一各種試題c語言課件第十講_第1頁
大一各種試題c語言課件第十講_第2頁
大一各種試題c語言課件第十講_第3頁
大一各種試題c語言課件第十講_第4頁
大一各種試題c語言課件第十講_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論