C语言 将一个磁盘文件中的信息复制到另一个磁盘文件中,要求使用 fread fwrite这两个函数来实现0
我自己也有写一个,不过感觉不太对(代码如下),指点下我的程序或者重新写一个都行哈,谢谢啦~
#include
#define SIZE 4
struct student_type
{
char name[10];
int num;
int age;
char addr[15];
}stud[SIZE];
void save()
{
FILE *fp;
int i;
if((fp=fopen("stu_1","w"))==NULL)
{
printf("cannot open file\n");
return;
}
for(i=0;i
if( fwrite( &stud[i],sizeof(struct student_type),1,fp )!=1 )
printf("file write error\n");
fclose(fp);
}
void load()
{
FILE *fp;
int i;
if((fp=fopen("stu_1","r"))==NULL)
{
printf("cannot open infile\n");
return;
}
for(i=0;i
if(fread(&stu_1,sizeof(struct student_type),1,fp)!=1)//读取stu_1文件中的信息,直到读不出信息(读到文件尾了),跳出循环。循环体中就是打印读到的信息和令存文件
printf("%-10s %4d %4d %-15s\n",stud[i].name,stud[i].num,stud[i].age,stud[i].addr);
fclose(fp);
}
void save1()
{
FILE *fp;
int i;
if((fp=fopen("stu_2","w"))==NULL)
{
printf("cannot open file\n");
return;
}
for(i=0;i
if( fwrite( &stud[i],sizeof(struct student_type),1,fp )!=1 )
printf("file write error\n");
fclose(fp);
}
int main()
{
int i;
for(i=0;i
scanf("%s%d%d%s",stud[i].name,&stud[i].num,&stud[i].age,&stud[i].addr);
save();
load();
save1();
return 0;
}