二进制文件读写 遇困难

1.要求设计一个程序,键盘输入一个 n 值(如,6。本程序要求 n 值不超过 65),程序将显示斐波那契数列的前 n 项数列值同时还要将前 n 项数列值写入一个二进制文件保存,该二进制文件名指定为 Fibonacci.dat。上传源程序文件。

img

2 打开上一题建立的二进制文件 Fibonacci.dat,从中读取数据送屏幕上显示。上传源程序文件。

img

能帮我看看哪错了吗?

主要是fread和fwrite函数的使用不当,修改如下:
参考资料:
C 库函数 – fread() | 菜鸟教程
C 库函数 – fwrite() | 菜鸟教程

#include <stdio.h>
#include <stdlib.h>
#define N 65
double Fibon(int n);
int readFiboFile(int j);
int main(void){
    
    int i,j;
    FILE * pf_b = NULL;
//    char new_file_name[30]="二进制_file.data";
    char new_file_name[30]="二进制_file.data";
    double num[65];
    
    pf_b=fopen(new_file_name,"wb");
    if(pf_b==NULL){
        printf("\n\n\t open %s fail.\n\n",new_file_name);
        return 0;
    }
    
    do{
        printf("请输入你想查看前几项数列值(不大于65):");
        scanf("%d",&j); 
    }while(j>66||j<0);
    
    int k=0;
    for(i=1;i<=j;i++){
        printf("%.0lf ",Fibon(i));
        num[k]=Fibon(i);
        k++;
    }
//    printf("k=%d\n",k);
    
    //从存储斐波那契数的数组的起始位置读取k个double长度的数据到文件中 
     //fwrite第一个参数是要写入文件的元素数组指针,第二个参数是要写入的元素的大小,第三个元素是要写入元素的个数,第四个参数是文件指针 
    fwrite(&num[0],sizeof(double),k,pf_b);
    fclose(pf_b);
//    scanf("%d",&i); 
    
    readFiboFile(j);
    return 0;
} 

int readFiboFile(int n){
    FILE * pf_c =NULL, *pf_b=NULL;
//    char num[N];
    double num[N];
    int count=0,i,j;
    char read_file_name[30]="二进制_file.data";
    
    pf_b = fopen(read_file_name,"rb");
    if(pf_b==NULL){
        printf("\n\n\t     Open %s fail. \n\n",read_file_name);
        return 0;
    }
    
//    fwrite(&num[65],60,1,pf_b);
    i=0;    
    while(feof(pf_b)==0){
//从文件读取一个斐波那契数读入数组当前位置
//fread函数第一个参数是要存储数据的地址,第二个是一次读取的元素的大小,第三个参数是要读取几个元素,第四个参数是文件指针        
        fread(&num[i],sizeof(double),1,pf_b);
        i++;
    }
//    printf("\ni=%d\n",i);
    if(fclose(pf_b)!=0){
        printf("\n Close fail. \n");
    }
    
    printf("\n读取的信息为:\n");
    for(j=0;j<n;j++){
        printf("%.0lf ",num[j]); 
    } 
} 

double Fibon(int n){
    
    if(n==1 || n==2){
        return 1;
    }else{
        return Fibon(n-1)+Fibon(n-2);
    }
    
}

img