33,317
社区成员
发帖
与我相关
我的任务
分享#include<stdio.h>
#include<stdlib.h>
#define N 3
//输入学生信息写入文件并在屏幕显示
struct student{
int num;
char name[20];
int score[3];
};
main()
{
FILE *fp;
struct student stu[N];
int i,j;
for(i=0;i<N;i++){
printf("student%d\n",i+1);
printf("num:");
scanf("%d",&stu[i].num);
printf("name:");
scanf("%s",stu[i].name);
for(j=0;j<3;j++){
printf("score%d:",j+1);
scanf("%d",&stu[i].score[j]);
}
}
if((fp=fopen("data.txt","wb"))==NULL){
printf("error");
exit(1);
}
if((fwrite(&stu,sizeof(struct student),N,fp))!=N){
printf("error");
exit(1);
}
fclose(fp);
if((fp=fopen("data.txt","rb"))==NULL){
printf("error");
exit(1);
}
if((fread(&stu,sizeof(struct student),N,fp))!=N){
printf("error");
exit(1);
}
for(i=0;i<N;i++)
printf("%d,%s,%d,%d,%d\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
fclose(fp);
}
size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream); //函数用法
if((fwrite(&stu,sizeof(struct student),N,fp))!=N){//stu已经是地址了 不需要再加& fread也一样
