第10章 对文件的输入输出2.ppt

  1. 1、本文档共97页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章 对文件的输入输出2

第10章 对文件的输入输出 C程序设计与实训 10.3.3用格式化的方式读写文件 一般调用方式为: fprintf(文件指针,格式字符串,输出表列); fscanf (文件指针,格式字符串,输入表列); 如: fprintf (fp,”%d,%6.2f”,i,f); fscanf (fp,”%d,%f”,i,f); 10.3.4 用二进制方式向文件读写一组数据 一般调用形式为: fread(buffer,size,count,fp); fwrite(buffer,size,count,fp); 10.3.4 用二进制方式向文件读写一组数据 buffer:是一个地址 对fread来说,它是用来存放从文件读入的数据的存储区的地址 对fwrite来说,是要把此地址开始的存储区中的数据向文件输出 size:要读写的字节数 count:要读写多少个数据项 fp:FILE类型指针 例10.4 从键盘输入10个学生的有关数据,然后把它们转存到磁盘文件上去。 解题思路: 定义有10个元素的结构体数组,用来存放10个学生的数据 从main函数输入10个学生的数据 用save函数实现向磁盘输出学生数据 用fwrite函数一次输出一个学生的数据 #include stdio.h #define SIZE 10 struct Student_type { char name[10]; int num; int age; char addr[15]; }stud[SIZE]; void save( ) { FILE *fp; int i; if((fp=fopen(stu.dat,wb))==NULL) { printf(cannot open file\n); return; } for(i=0;iSIZE;i++) if(fwrite(stud[i], sizeof(struct Student_type), 1,fp)!=1) printf(file write error\n); fclose(fp); } 10+4+4+15=33,实际上开辟36字节,是4的倍数 当前路径下的文件 10.2.1 用fopen函数打开数据文件 fopen函数的调用方式为: fopen(文件名,使用文件方式); 例如: fopen(“a1”,”r”); 表示要打开名为“a1”的文件,使用文件方式为“读入” fopen函数的返回值是指向a1文件的指针 10.2.1 用fopen函数打开数据文件 通常将fopen函数的返回值赋给一个指向文件的指针变量。如: FILE *fp; fp=fopen(“a1”,”r”); fp和文件a1相联系,fp指向了a1文件 10.2.1 用fopen函数打开数据文件 在打开一个文件时,通知编译系统以下3个信息: ①需要访问的文件的名字 ②使用文件的方式(“读”还是“写”等) ③让哪一个指针变量指向被打开的文件 使用文件方式参见教材表10.1。 说明: (1) 用“r”方式打开的文件只能用于向计算机输入而不能用作向该文件输出数据,而且该文件应该已经存在,并存有数据,这样程序才能从文件中读数据。 不能用“r”方式打开一个并不存在的文件,否则出错。 说明: (2) 用“w”方式打开的文件只能用于向该文件写数据(即输出文件),而不能用来向计算机输入。 如果原来不存在该文件,则在打开文件前新建立一个以指定的名字命名的文件。 如果原来已存在一个以该文件名命名的文件,则在打开文件前先将该文件删去,然后重新建立一个新文件。 说明: (3) 如果希望向文件末尾添加新的数据(不希望删除原有数据),则应该用“a”方式打开 但此时应保证该文件已存在;否则将得到出错信息。 打开文件时,文件读写标记移到文件末尾 说明: (4) 用r+、w+、a+方式打开的文件既可以用来输入数据,也可以用来输出数据。 用r+方式时该文件应该已经存在。 用w+方式则新建立一个文件,先向此文件写数据,然后可以读此文件中的数据。 用a+方式打开的文件,原来的文件不被删去,文件读写位置标记移到文件末尾,可以添加,也可以读。 说明: (5) 如果打开失败,fopen函数将会带回一个出错信息。fopen函数将带回一个空指针值NULL 常用下面的方法打开一个文件: if ((fp=fopen(“file1”,’r″))==NULL)  {printf(“cannot open this file\n”); exit(0);  } 终止正

文档评论(0)

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

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档