#include <stdio.h>
#include <stdlib.h>
typedef struct{
char id[15];
char name[15];
int score;
char password[8];
}stuStru;
//从文件读用户信息
int readFromFile(stuStru s[],char *filename){
FILE *fp;
int n=0,k;
fp=fopen(filename, "rb"); //打开文件
if(fp==NULL){
printf("读取数据失败!\n");
return 0;
}
else{
while(1){
k=fread(s+n,sizeof(stuStru), 1, fp); //读取一条记录
if (k!=1) break; //未读取成功表明文件已结束
n++;
}
fclose(fp);
return n; //返回成功读取的记录总数
}
}
//将用户信息写入文件 (存盘)
void writeToFile(stuStru s[], char *filename, int n){
FILE *fp;
fp=fopen(filename, "wb"); //打开文件
if (fp!=NULL){
fwrite(s,sizeof(stuStru), n, fp); //写文件
fclose(fp);
}
else
printf("文件保存失败!\n");
}
//打印
void print(stuStru s[],int n)
int main(){
stuStru s[100],t[100];
int n;
n=readFromFile(s,"stu.txt");
print(s,n);
writeToFile(s,"stu1.txt",n);
n=readFromFile(t,"stu1.txt");
printf("%d",n);
print(t,n);
return 0;
}