我是靠谱客的博主 娇气歌曲,最近开发中收集的这篇文章主要介绍二进制文件存入结构体数组,读取结构体数组,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

不知道哪里有问题,结果有很多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;
}

最后

以上就是娇气歌曲为你收集整理的二进制文件存入结构体数组,读取结构体数组的全部内容,希望文章能够帮你解决二进制文件存入结构体数组,读取结构体数组所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部