为什么文件创建失败而且不输出菜单

 ###### 问题遇到的现象和发生背景
文件创建失败而且不输出菜单
 ###### 问题相关代码,请勿粘贴截图


```c
#include<stdio.h>        //标准输入、输出头文件
#include<string.h>        //包含字符串函数处理头文件
#define N 9999            //定义最多的航班数
#define PRINT "%s\t\t%s\t\t%s\t\t%f\t\t%d\t\t%d\n ",s[i].flightNO/*航班号*/,s[i].start/*起始站*/,s[i].end/*终点站*/,s[i].day/*时间*/,s[i].totalTicket /*预售票总数*/,s[i].sellTicket;/*已售票数*/   //宏定义输出格式



struct air             //定义结构体数组
{
    char flightNO;                //定义航班号
    char start[20];            //航班起始站
    char end[20];            //终点站
    float day;              //飞行时间
    int  totalTicket;     //预售票总数
    int  sellTicket;      //已售票总数

}s[N];




int i,m=0;
int fclose(FILE *fp);                //定义全局变量
char flightNO[10];
void add();        //函数声明增加航班信息函数
void print();         //显示航班信息
void search();        //查找航班信息
void read();        //读取文件        
void save();        //保存文件
void output();        //输出格式
void build();        //建立数据文件




void main()        //主函数
{
    int j;
        read();  
       printf("\n\t欢迎使用航班订票系统!\n");
   printf("*********************************************\n");
   printf("         1.增加航班信息\n");
   printf("         2.浏览航班信息\n");
   printf("         3.查找航班信息\n");
   printf("         0.退出系统(exit)\n");
   printf("*********************************************\n"); 
    printf("请在0-6中选择以回车键结束: ");
    scanf("%d",&j);
    switch(j)
    {
        case 1:
            add();        //调用增加航班函数
            break;
        case 2:
            print();        //调用显示模块
            break;
        case 3:
            search();    //调用查找模块
            break;
        case 0:
            save();        //退出系统
            printf("谢谢使用,再见! ");
            break;
        default:
            printf("输入错误\n");
    }
 }


 



void read()            //定义读取文件函数
{
    FILE *fp;
    if((fp=fopen("hangban.txt","rt"))==NULL)
    {
        printf("创建文件失败! ");
        getchar();
    }
    i=0;
    while(!feof(fp))
    {
        fread(&s[i],sizeof(struct air),1,fp);        //逐块读取数据
        i++;
        m++;        //计算存在航班数
    }
    m--;
    fclose(fp);
}



void save()        //定义保存函数
{
    FILE *fp;
    if((fp=fopen("hangban.txt","wt"))==NULL)  
    {
        printf("创建文件失败! ");
    }
    for(i=0;i<m;i++)            //逐块保存数据
        fwrite(&s[i],sizeof(struct air),1,fp);
    fclose(fp);
}




void add()        //定义增加航班信息函数
{
    do{
        printf("请依次输入您要增加的航班信息(以回车键结束):  \n");      //打印提示信息
        printf("-------------------------------------------------------------------------- \n");
            printf("请输入航班号: ");  
            scanf("%s",&s[m].flightNO);        //读取航班号
            printf("请输入起始站: ");
            scanf("%s",&s[m].start);        //读取起始站
            printf("请输入终点站: ");
            scanf("%s",&s[m].end);        //读取终点站
            printf("请输入时间: ");
            scanf("%f",&s[m].day);        //读取时间
            printf("请输入机票数: ");
            scanf("%d",&s[m].totalTicket);    //读取预售机票数
            printf("请输入机票数: ");
            scanf("%d",&s[m].sellTicket);   //读取已售机票数
            m++;
        printf("添加完毕,是否继续添加?请键入y或n以回车键结束:");
        scanf("%s",flightNO);
    }while(!strcmp(flightNO,"y"));        //判断是否继续添加
}

void output()        //定义输出格式函数
{
    printf("航班号\t\t起始站\t\t终点站\t\t时间\t\t预售机票数\t\t已售机票数\n");        //信息标题
     for(i=0;i<m;i++)
        printf("PRINT");//打印出信息    
}

void print()        //定义显示航班信息函数
{
    printf("\n目前我们有如下航班:\n");
    output();            //调用输出格式函数
    printf("\n请按回车键返回上层菜单 ");
}
 


void search()        //定义查询函数
{
    int n;    
    do
    {
        printf("\n请输入航班号: ");
        scanf("%d",&n);        //输入查询的航班号
        for(i=0;i<m;i++)
        { 
            if(s[i].flightNO==n)    //按航班号判定输出条件
            {  
                printf("\n您所查找的航班信息为:\n ");
                printf("航班号\t\t起始站\t\t终点站\t\t时间\t\t机票数 \n\n");
                printf("PRINT");        //显示信息 
                printf("\n查询完毕,按回车键继续");
                getchar();
                getchar();
                return;
            }
    }
    printf("\n对不起,没有您需要的信息!\n ");
    printf("是否重新查找?请键入y或n以回车键结束 ");
    scanf("%s",flightNO);
    }while(!strcmp(flightNO,"y"));//判定是否重新查找
}


```
 ###### 运行结果及报错内容
结果显示的是文件创建失败,按任意键后就结束运行了
 ###### 我的解答思路和尝试过的方法

 ###### 我想要达到的结果
可以创建文件而且程序可以正常运行

if((fp=fopen("hangban.txt","rt"))==NULL)中的rt改成r+

fopen()模式写错了,应该是"w",不是"wt"