A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© Micro 高级黑马   /  2015-2-10 10:15  /  905 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在移动位置指针之后,即可用前面介绍的任一种读写函数进行读写。由于一般是读写一个数据据块,因此常用fread和fwrite函数。下面用例题来说明文件的随机读写。

【例1】在学生文件stu_list中读出第二个学生的数据。
  1. #include<stdio.h>
  2. struct stu{
  3.     char name[10];
  4.     int num;
  5.     int age;
  6.     char addr[15];
  7. }boy,*qq;
  8. main(){
  9.     FILE *fp;
  10.     char ch;
  11.     int i=1;
  12.     qq=&boy;
  13.     if((fp=fopen("stu_list","rb"))==NULL){
  14.         printf("Cannot open file strike any key exit!");
  15.         getch();
  16.         exit(1);
  17.     }
  18.     rewind(fp);
  19.     fseek(fp,i*sizeof(struct stu),0);
  20.     fread(qq,sizeof(struct stu),1,fp);
  21.     printf("\n\nname\tnumber      age      addr\n");
  22.     printf("%s\t%5d  %7d      %s\n",qq->name,qq->num,qq->age,qq->addr);
  23. }
复制代码


文件stu_list已由【例1】的程序建立,本程序用随机读出的方法读出第二个学生的数据。程序中定义boy为stu类型变量,qq为指向boy的指针。以读二进制文件方式打开文件,程序第19行移动文件位置指针。其中的i值为1,表示从文件头开始,移动一个stu类型的长度,然后再读出的数据即为第二个学生的数据。

1 个回复

倒序浏览
:D↖(^ω^)↗ 一起努力
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马