在学生文件stu list中读出第二个学生的数据。
#include
struct stu /*结构体*/
{
char name[10];
int num;
int age;
char addr[15]; /*数组*/
}boy,*qq; /*指针*/
main()
{
FILE *fp; /*文件*/
char ch;
int i=1;
qq=&boy;
if((fp=fopen("stu_list","rb"))==NULL)/*表达式运算符*/
{
printf("Cannot open file strike any key exit!");
getch();
exit(1); /*函数*/
}
rewind(fp);
fseek(fp,i*sizeof(struct stu),0);
fread(qq,sizeof(struct stu),1,fp);
printf("\n\nname\tnumber age addr\n");
printf("%s\t%5d %7d %s\n",qq->name,qq->num,qq->age,
qq->addr);
}
本程序用随机读出的方法读出第二个学生的数据。程序中定义boy为stu类型变量,qq为指向boy的指针。以读二进制文件方式打开文件,程序第22行移动文件位置指针。其中的i值为1,表示从文件头开始,移动一个stu类型的长度, 然后再读出的数据即为第二个学生的数据。
很自由的题