版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
文件的讀寫(xiě)文件操作從文件中讀字符函數(shù)fgetc函數(shù)原型:intfgetc(FILE*fp);從文件指針fp指向的文件當(dāng)前位置(位置指針)讀出一個(gè)字符,然后文件位置指針自動(dòng)后移,指向文件中的下一個(gè)字符,返回值為讀入的字符。若遇到文件結(jié)束符,則返回結(jié)束符EOF(-1)功能:ch=fgetc(fp);例【例1:】將磁盤(pán)文件”mydata.txt”的信息讀出并顯示到屏幕上。(假設(shè)文件已經(jīng)存在。若不存在,可以用記事本或其它文本編輯器編輯并保存)#include<stdio.h>voidmain(){FILE*fp;//定義文件指針charc;if((fp=fopen(“mydata.txt”,“r”))==NULL) {printf(“\nFilenotexist!”);//如果文件不能成功打開(kāi),輸出出錯(cuò)提示exit(0);//結(jié)束程序運(yùn)行}while((c=fgetc(fp))!=EOF)//逐個(gè)讀取文件里的字符,直到遇到結(jié)束字符為止putchar(c);//將字符顯示在屏幕上fclose(fp);//關(guān)閉文件
}向文件寫(xiě)入字符函數(shù)fputc函數(shù)返回值:輸出成功,返回值就是輸出的字符;輸出失敗,返回一個(gè)EOF(值為-1)。功能:把一個(gè)字符ch寫(xiě)到fp指向的磁盤(pán)文件上去函數(shù)原型:intfputc(intch,FILE*fp);
FILE*fp;charch=‘A’;…fputc(ch,fp)例【例2:】從鍵盤(pán)輸入一些字符存到一個(gè)磁盤(pán)文件data.txt中,以“#”結(jié)束#include<stdio.h>voidmain(){FILE*fp;//定義文件指針charc;if((fp=fopen(“d:\\example\\data.txt”,“w”))==NULL) {printf(“\nFilecannotopen!”);//如果文件不能成功打開(kāi),輸出出錯(cuò)提示exit(0);//結(jié)束程序運(yùn)行}while((c=getchar())!=‘#’)//連續(xù)從鍵盤(pán)輸入若干字符,直到遇到#字符為止fputc(c,fp);//將字符寫(xiě)入fp所指向的文件中fclose(fp);//關(guān)閉文件}從文件中讀字符串函數(shù)fgets說(shuō)明:功能:從指針fp指向的文件中讀取len–1個(gè)字符,把它送到由指針buf指向的字符數(shù)組中函數(shù)原型:char*fgets(char*buf,intlen,FILE*fp);字符數(shù)組的長(zhǎng)度應(yīng)大于len,可存放len-1個(gè)字符,字符數(shù)組的最后一個(gè)元素為’\0’若在讀入len-1個(gè)字符前遇到換行符’\n’或文件結(jié)束符號(hào)EOF,立即結(jié)束讀入操作將字符串寫(xiě)入文件的函數(shù)fputs功能:函數(shù)原型:char*fputs(char*buf,FILE*fp);形參buf可以是字符串常量、字符數(shù)組名、指針變量把由指針buf指向的字符數(shù)組中的字符串寫(xiě)入由指針fp指向的文件中【例3:】從鍵盤(pán)輸入字符串存入文件,再?gòu)奈募x回顯示#include<stdio.h>voidmain(){FILE*fp;charstring[81];if((fp=fopen(“file.txt”,“w”))==NULL)//以“寫(xiě)”方式打開(kāi)文件{printf("cann'topenfile");exit(0);}while(strlen(gets(string))>0)//從鍵盤(pán)上輸入字符串
{fputs(string,fp);//將字符串寫(xiě)入文件fputs("\n",fp);}fclose(fp);//關(guān)閉文件if((fp=fopen(“file.txt”,“r”))==NULL)//以“讀”方式重新打開(kāi)文件{printf("cann'topenfile");exit(0);}while(fgets(string,81,fp)!=NULL)//從文件中讀取一串字符puts(string);//在屏幕上顯示字符串
fclose(fp);}按指定格式讀寫(xiě)文件的函數(shù)fprintf、fscanf調(diào)用格式:fscanf(fp,“%d,%f”,&i,&t);//若文件中有3
,
4.5,則將3讀出送入變量i,4.5讀出送入變量tfprintf(fp,“%d,%6.2f\n”,i,t);//將變量i和t的值按%d,%6.2f格式寫(xiě)入到fp所指向的文件中由于輸入輸出時(shí)要進(jìn)行ASCII碼和二進(jìn)制形式的轉(zhuǎn)換,費(fèi)時(shí)較多fprintf和fscanf函數(shù)對(duì)磁盤(pán)文件讀寫(xiě);printf和scanf函數(shù)對(duì)顯示器或鍵盤(pán)操作
fscanf(fp,格式字符串,地址列表);fprintf(fp,格式字符串,輸出列表);例數(shù)據(jù)塊讀寫(xiě)函數(shù)fread、fwritebuffer:要讀入的數(shù)據(jù)塊的存放首地址或要輸出的數(shù)據(jù)塊的起始地址size:每個(gè)要讀/寫(xiě)的數(shù)據(jù)塊的大?。ㄗ止?jié)數(shù))count:要讀/寫(xiě)的數(shù)據(jù)塊的個(gè)數(shù)fp:要讀/寫(xiě)的文件指針intfread(void*buffer,intsize,intcount,FILE*fp);intfwirte(void*buffer,intsize,intcount,FILE*fp);函數(shù)原型:參數(shù)說(shuō)明:fread與fwrite一般用于二進(jìn)制文件的輸入/輸出【例4:】從鍵盤(pán)輸入4個(gè)學(xué)生的數(shù)據(jù),然后轉(zhuǎn)存到磁盤(pán)上,并在屏幕上顯示磁盤(pán)文件的內(nèi)容#include<stdio.h>#defineSIZE10structstudent{charname[10];intnum;intage;charaddr[20];};voidmain(){voidsave(structstudent);//聲明函數(shù)原型voiddisplay(structstudent);
//聲明函數(shù)原型structstudentst[SIZE];
for(i=0;i<SIZE;i++)scanf("%s%d%d%s",st[i].name,&st[i].num,&st[i].age,st[i].addr);
save(st);
//調(diào)用函數(shù)savedisplay(st);
//調(diào)用函數(shù)display}voidsave(structstudentstud){FILE*fp;inti;if((fp=fopen("d:\\stu_list.dat","wb"))==NULL){printf("cannotopenfile\n");return;}for(i=0;i<SIZE;i++)if(fwrite(&stud[i],sizeof(structstudent),1,fp)!=1)
printf("filewriteerror\n");
fclose(fp);}voiddisplay(structstudentstud){FILE*fp;inti;if((fp=fopen("d:\\stu_list.dat","rb"))==NULL){printf("cannotopen
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度水利工程出渣承包服務(wù)協(xié)議3篇
- 2025年度私人直升機(jī)購(gòu)置私人抵押借款合同
- 二零二五年度跨境電商合同標(biāo)的跨境電商平臺(tái)跨境金融服務(wù)協(xié)議
- 二零二五年度車(chē)輛事故免責(zé)條款及處理方案合同范本
- 2025年度股權(quán)分紅與公司員工福利保障協(xié)議4篇
- 二零二五年度退休返聘人員合同解除書(shū)
- 二零二五年度酒店客房租賃與旅游服務(wù)評(píng)價(jià)合同
- 二零二五年度酒店客房預(yù)訂與旅游目的地深度游服務(wù)協(xié)議
- 二零二五年度酒店股份出售與酒店品牌形象重塑協(xié)議
- 二零二五年度銀行賬戶(hù)管協(xié)議方金融信息安全合作協(xié)議
- 妊娠合并低鉀血癥護(hù)理查房
- 煤礦反三違培訓(xùn)課件
- 向流程設(shè)計(jì)要效率
- 安全文明施工的管理要點(diǎn)
- 2024年中國(guó)航空發(fā)動(dòng)機(jī)集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 當(dāng)代中外公司治理典型案例剖析(中科院研究生課件)
- 動(dòng)力管道設(shè)計(jì)手冊(cè)-第2版
- 2022年重慶市中考物理試卷A卷(附答案)
- Python繪圖庫(kù)Turtle詳解(含豐富示例)
- 煤礦機(jī)電設(shè)備檢修技術(shù)規(guī)范完整版
- 榆林200MWp并網(wǎng)光伏發(fā)電項(xiàng)目可行性研究報(bào)告
評(píng)論
0/150
提交評(píng)論