网站大量收购闲置独家精品文档,联系QQ:2885784924

第9章文件操作.ppt

  1. 1、本文档共53页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
9.3.2文件的读函数 例9-6 使用fgets()函数改写例9-5。 #includestdio.h void main() { FILE *fp; char ch[50]; int n; if((fp=fopen(c:\\myfile.txt,r))==NULL) { printf(Cannot open file the file!); getch(); /* 暂停 */ exit(0); /* 退出程序 */ } while(!feof(fp)) { fgets(ch,50,fp); printf(%s,ch); } fclose(fp); } 9.3.2文件的读函数 3.格式化读函数fscanf() fscanf函数与前面使用的scanf函数的功能相似,都是格式化读写函数。两者的区别在于 fscanf 函数和fprintf函数的读写对象不是键盘和显示器,而是磁盘文件。 调用格式为: fscanf(文件指针,格式字符串,输入表列) 例如:fscanf(fp,%d%f,i,x); 函数的返回值为EOF,表明读错误;否则读数据成功。 例9-7:将例9-3所建立的文本文件“c:\data.txt”的数据读中来,按升序排序后,按同样格式追加写原文件在后,与原数据之间空前2行。 9.3.2文件的读函数 #includestdio.h void scandata(int a[],int n); void sort(int a[],int n); void putdata(int a[],int n); void main() { int a[20],i; scandata(a,20); sort(a,20); putdata(a,20); } void scandata(int a[],int n) { int i; FILE *fp; if((fp=fopen(c:\\data.txt,r))==NULL) { printf(Cannot open file!); getch(); exit(0); } for(i=0;in;i++) { if(i%5==0) fscanf(fp,%5d,a[i]); else fscanf(fp,,%5d,a[i]); } fclose(fp); } void sort(int a[],int n) { int i,j,k,t; for(i=0;in-1;i++) { k=i; for(j=i+1;jn;j++) if(a[k]a[j])k=j; t=a[i]; a[i]=a[k]; a[k]=t; } } void putdata(int a[],int n) { int i; FILE *fp; if((fp=fopen(c:\\data.txt,a))==NULL) { printf(Cannot open file!); getch(); exit(0); } fprintf(fp,\n\n); for(i=0;in;i++) { if(i%5==0) fprintf(fp,%5d,a[i]); else fprintf(fp,,%5d,a[i]); if((i+1)%5==0) fprintf(fp,\n); } fclose(fp); } 9.3.2文件的读函数 程序运行后,用记事本打开“c:\data.txt”文件如下: 9.3.2文件的读函数 4.读取数据块函数fread() C语言还提供了用于整块数据的读函数。可用来读一组数据,如一个数组,一个结构变量的值等。读数据块函数调用的一般形式为: fread(buffer,size,count,fp); 其中,buffer是一个指针,在fread函数中,它表示存放输入数据的首地址。size 表示数据块的字节数。count 表示要读写的数据块块数。fp 表示文件指针。 例如:有定义:float a[5]; fread(a,4,5,fp); 其意义是从fp所指的文件中,每次读4个字节(一个实数)送入实数组a中,连续读5次,即读5个实数到a中。 9.

文档评论(0)

jdy261842 + 关注
实名认证
内容提供者

分享好文档!

1亿VIP精品文档

相关文档