清华大学_C++课程_第13讲文件_169305392.pptVIP

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
13.4 文件的概念 第4次实验要求 综合程序设计(具体要求见WORD文件),按要求设计程序,并上机调试。提交实验报告。 §13.7 文件的读写 [例]从键盘上输入一批学生数据,然后存储到磁盘上。 #include stdio.h #define SIZE 4 struct student_type {  char name[10];  int num;  int age;  char addr[15]; }stud[SIZE]; void save(); /* 原型 */ void load(); /* 原型 */ void main() { int i; for(i=0; iSIZE; i++) scanf(%s%d%d%s, stud[i].name, stud[i].num, stud[i].age, stud[i].addr);   save(); /* 存盘 */ load(); /* 从盘读出 */  for(i=0; iSIZE; i++) printf(%-10s%4d%4d%-15s\n, stud[i].name, stud[i].num, stud[i].age, stud[i].addr); } void save() { FILE *fp;int i;   if ((fp=fopen(stu_list, wb))==NULL) {printf(can not open file\n“); exit(0);}   for(i=0; iSIZE; i++) if (fwrite(stud[i], sizeof(struct student_type), 1, fp) != 0) printf(file read error\n);} void load() { FILE *fp; int i;   if ((fp=fopen(stu_list, rb))==NULL)  {printf(can not open file\n“);   return;}  for(i=0; iSIZE; i++)  if (fread(stud[i], sizeof(struct student_type), 1, fp) !=0)  { if (feof(fp)) return;   printf(file read error\n);}} §13.7 文件的读写 fprintf()/fsacnf()函数 fprintf(文件指针,格式控制,变量列表); fscanf (文件指针,格式控制,变量地址列表); 除增加“文件指针”外,与printf()/scanf()用法相同。 其它读写磁盘函数 int putw(int w, FILE *fp) /* 整数w写入文件fp * int getw(FILE *fp) /* 从文件fp读一个整数 */ char * fgets(char *str, int n, FILE *fp); 从文件fp读n-1个字节到str,str最后一个字节加‘\0’。 int fputs(const char *str, FILE *fp) 把str写入fp。 §13.8 文件的定位 文件指针FILE *fp中,包含一个读写位置指针char *_nextc,它指向下一次文件读写的位置。 typedef struct {int _fd;    /* 文件号 */  int _cleft;   /* 缓冲区中剩下的字节数 */  int _mode;   /* 文件操作模式 */  char * _nextc; /* 下一个字节的位置 */  char * _buff; /*文件缓冲区位置 */  }FILE; 每当进行一次读写后,该指针自动指向下一次读写的位置 当文件刚打开或创建时,该指针指向文件的开始位置。 可以用函数ftell()获得当前的位置指针,也可以用rewind()/fseek()函数改变位置指针,使其指向需要读写的位置。 原型:long ftell (FILE *fp); 功能: 获得文件fp的当前位置指针。若返回-1则失败。 §13.8 文件的定位 原型:void rewind(FILE *fp) 作用:使文件fp的位置指针指向文件开始。 [例1] 把一个文件的内容显示在屏幕上,并同时复制到另一个文件。 #include stdio.h void main() {FILE *fp1, *fp2; fp1 = fopen(file1.c, rb); /* 源文件 */ fp2 = fopen(file2.c, wb); /* 复制到file2.c

您可能关注的文档

文档评论(0)

taotao0b + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档