概述
不知道哪里有问题,结果有很多0
#include <stdio.h>
#include <stdlib.h>
struct stu{
char name[20];
int num;
float wages;
}a[20];//定义结构体数组
void mergeFile(FILE*fp1,FILE*fp2,FILE*fp3){
int k=0;
struct stu change;
while(fgetc(fp1)!=EOF){
fscanf(fp1,"%d %s %f",a[k].num,a[k].name,a[k].wages);
k++;
}
while(fgetc(fp2)!=EOF){
fscanf(fp2,"%d %s % f",a[k].num,a[k].name,a[k].wages);
k++;
} //将两个文件的内容全部存入结构体数组
for(int i=0;i<k-1;i++){
for(int j=0;j<k-i;j++){
if(a[i].wages >a[j].wages ){
change=a[i];
a[i]=a[j];
a[j]=change;
}
} //通过冒泡排序使结构体数组内容编程升序
}
for(int n=0;n<k;n++){
fwrite(a,sizeof(stu),1,fp3);
}//将结构体内容存入a3
rewind(fp3);
for(int X=0;X<k;X++){
printf("学号:%dt 姓名:%st 成绩:%5.2fn",a[X].num,a[X].name,a[X].wages);
}
}
int main(){
FILE *fp1,*fp2,*fp3;
void mergeFile(FILE*fp1,FILE*fp2,FILE*fp3);
if ((fp1= fopen("a1.dat", "rb"))==NULL)
{
printf("不能打开文件1!");
exit(0);
}//打开文件1
if ((fp2= fopen("a2.dat", "rb"))==NULL)
{
printf("不能打开文件2!");
exit(0);
}//打开文件2
if ((fp3= fopen("a3.dat", "rb"))==NULL)
{
printf("不能打开文件3!");
exit(0);
}//打开文件3
mergeFile(fp1,fp2,fp3);//调用函数
fclose(fp1);
fclose(fp2);
fclose(fp3);
return 0;
}
最后
以上就是娇气歌曲为你收集整理的二进制文件存入结构体数组,读取结构体数组的全部内容,希望文章能够帮你解决二进制文件存入结构体数组,读取结构体数组所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复