![7.2.4文件操作 - 文件操作7.2_第1页](http://file4.renrendoc.com/view2/M01/36/37/wKhkFmZK4EmATN45AAGlcQ9zVjU444.jpg)
![7.2.4文件操作 - 文件操作7.2_第2页](http://file4.renrendoc.com/view2/M01/36/37/wKhkFmZK4EmATN45AAGlcQ9zVjU4442.jpg)
![7.2.4文件操作 - 文件操作7.2_第3页](http://file4.renrendoc.com/view2/M01/36/37/wKhkFmZK4EmATN45AAGlcQ9zVjU4443.jpg)
![7.2.4文件操作 - 文件操作7.2_第4页](http://file4.renrendoc.com/view2/M01/36/37/wKhkFmZK4EmATN45AAGlcQ9zVjU4444.jpg)
![7.2.4文件操作 - 文件操作7.2_第5页](http://file4.renrendoc.com/view2/M01/36/37/wKhkFmZK4EmATN45AAGlcQ9zVjU4445.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
7.5FileAccessThegeneralstepsforafileoperation: 1Openthefile 2Dooperationsonthefilebyfilepointer. 3CloseafileInClanguage,filesareaccessedbyfilepointers,whicharedeclaredas: FILE*fp;Duringthefirststep,wecanuseafopentomakefppointstothefilewewanttoaccess. fp=fopen(“data”,“r”); or if((fp=fopen(“data”,”r”))!=NULL)7.5FileAccess
FILE*fopen(char*filename,char*mode); intfclose(FILE*fp);1Thefilenamecanincludefullpath,justlike: fp=fopen(“c:\\system\\t.dat”,”r”);2Themodecanbe “r”:readonly “w”:writeonly “a”:appendonly Ifthesystemdistinguishbetweentextandbinaryfiles,forthelatter,a“b”mustbeappendedtothemodestring. fp=fopen(“t.dat”,”rb”);Whenoperationsfinished,thefileshouldbeclosed.fclose(fp);7.5FileAccess
Functionsusedtoaccessafile:1Readdatafromafile: intgetc(FILE*fp); intfscanf(FILE*fp,char*format,…); intfgets(char*string,intn,FILE*fp); intfread(charbuffer,intsize,intcount,FILE*fp);2Writedataintafile: intputc(intc,FILE*fp); intfprintf(FILE*fp,char*format,…); intfputs(char*string,intn,FILE*fo); intfwrite(char*buffer,intsize,intcount,FILE*fp)3filelocate fseek(FILE*fp,longoff,intstart);7.5FileAccesseg1:filecopy #include<stdio.h> main(intargc,char*argv[]) { FILE*fp1,*fp2; if(argc!=3) { printf(“Usage:copyf1f2\n”); exit(1); } if((fp1=fopen(argv[1],”r”))==NULL||((fp2=fopen(argv[2],”w”))==NULL) { printf(“Can’topenfile!\n”); exit(2); } while(putc(getc(fp1),fp2)!=EOF) ; fclose(fp1); fclose(fp2); }7.5FileAccesseg2:readfromacharacterfile,changelowertoupper. #include<stdio.h> main(intargc,char*argv[]) { FILE*fp1,*fp2; charc; if(argc!=3) exit(1);
if((fp1==fopen(*++argv,”r”))==NULL||((fp2=fopen(*++argv,”w”)=NULL) exit(2); while((c=fgetc(fp1))!=EOF) fputc(c+’A’-’a’,fp2); fclose(fp1); fclose(fp2); }7.5FileAccesseg2:concatenatefiles#include<stdio.h>main(intargc,char*argv[]){ FILE*fp; if(argc==1) filecopy(stdin,stdout); else while(--argc>0) if((fp=fopen(*++argv,”r”))==NULL){ printf(“cat:can’topen%s\n”,*argv); return1; }else{ filecopy(fp,stdout); fclose(fp); } return0;}7.5FileAccessvoidfilecopy(FILE*ifp,FILE*ofp){intc;while((c=getc(ifp))!=EOF) putc(c,ofp);}7.6LineInputandOutputchar*fgets(char*line,intmaxline,FILE*fp) fgetsreadnextinputline(includingthenewline)fromfilefpintocharacterarrayline,atmostmaxline-1characterswillberead Theresultlineisterminatedwith‘\0’;intfputs(char*line,FILE*fp) fputswritesastringtoafile(neednotcontainanewline)7.6LineInputandOutputchar*fgets(char*s,intn,FILE*iop){ registerintc; registerchar*cs; cs=s; while(--n>0&&(c=getc(iop))!=EOF) if((*cs++=c)==‘\n’) break; *cs=‘\0’; return(c==EOF&&CS==S)?NULL:s;}intfputs(char*s,FILE*iop){ intc; while(c=*s++) putc(c,iop);
returnferror(ip)?EOF:0;} Datafile问题1:读入n个整数(比如n=10),将其从小到大排序后,存放在一个数据文件中。分别考虑该数据文件是文本形式和二进制形式两种不同情况。问题2:从一个数据文件中读入n个整数(比如n=10),将其从小到大排序后输出,或者存放在另一个数据文件中。分别考虑该数据文件是文本形式和二进制形式两种不同情况。voidsort(int*list,intn){
inti,j,next;
for(i=1;i<n;i++){ next=list[i]; for(j=i-1;j>=0&&next<list[j];j--) list[j+1]=list[j]; list[j+1]=next; }}main(){
intinput[10],i; FILE*fpin,*fpout; if((fpin=fopen("in.dat","r"))==NULL){ printf(“Cannotopenfilein.dat\n”);
exit(-1); } for(i=0;i<10;i++)
fscanf(fpin,"%d",&input[i]); /* fread(input,sizeof(int),10,fpin);*/ sort(input,10); if((fpout=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度拆除工程风险评估及应急预案
- 2025年度新能源项目场站建设与运营管理合同
- 2025年度电池储能系统设计与集成服务合同
- 2025年度商业秘密保护保密劳动合同及保密协议
- 2025年度城市道路临时停车位租赁及交通管理合同
- 2025年度彩钢板隔墙快速安装服务合同
- 2025年度体育赛事赞助商提成协议
- 2025年冷墩钢合作协议书
- 如何选择理财顾问计划
- 多元文化背景下的艺术教育计划
- 实验动物饲养人员岗位竞聘演讲范文汇报报告范文
- 商业地产市场竞品楼盘市场调研表格
- SMT失效模式分析PFMEA
- 国际贸易地理全套课件
- 家校共育-助孩子成长-家长会课件
- 叉形件工艺及车床夹具设计说明书
- GB/T 709-2019热轧钢板和钢带的尺寸、外形、重量及允许偏差
- GB/T 5916-2008产蛋后备鸡、产蛋鸡、肉用仔鸡配合饲料
- GB/T 14177-2003林业机械便携式割灌机和割草机试验方法
- 安全测试工具、蹭网利器wifiphisher新增汉化版
- 中学教育-中学生心理健康量表参考范本
评论
0/150
提交评论