文件例题(四)

来源:互联网 发布:c语言程序每次都编译吗 编辑:程序博客网 时间:2024/06/04 01:15

【题目】从键盘输入10个学生的有关数据,然后把它们转存到磁盘文件上去。

#include<stdio.h>#include<stdlib.h>#define N 10struct student{ char name[10]; int num; int age; char addr[20];}stu[N];void save(){ FILE *fp; int i; if((fp=fopen("stu1.dat","wb"))==NULL) {  printf("Cannot open file!\n");  exit(0); } for(i=0;i<N;i++)  if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)   printf("File write error\n"); fclose(fp);}int main(){ int i; printf("Please enter data of students:\n"); for(i=0;i<N;i++)  scanf("%s %d %d %s",stu[i].name,&stu[i].num,&stu[i].age,stu[i].addr); save(); return 0;} 

 

    

 

【验证】  为了验证在磁盘文件“stu1.dat”中是否已存在此数据,可用以下程序从“stu1.dat”文件中读入数据,然后再屏幕上输入。

#include<stdio.h>#include<stdlib.h>#define N 10struct student{char name[10];int num;int age;char addr[20];}stu[N];int main(){int i;FILE *fp;    if((fp=fopen("stu1.dat","rb"))==NULL){printf("Cannot open file\n");exit(0);}for(i=0;i<N;i++){fread(&stu[i],sizeof(struct student),1,fp);printf("%-10s% -5d% -5d%-20s\n",stu[i].name,stu[i].num,stu[i].age,stu[i].addr);}fclose(fp);return 0;}



 

原创粉丝点击