为什么程序执行后创建文件失败?

问题遇到的现象和发生背景

程序执行后创建文件失败

问题相关代码,请勿粘贴截图
void read()            //定义读取文件函数
{
    FILE *fp;
    if((fp=fopen("hangban.dat","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.dat","wt"))==NULL)  
    {
        printf("创建文件失败! ");
    }
    for(i=0;i<m;i++)            //逐块保存数据
        fwrite(&s[i],sizeof(struct air),1,fp);
    fclose(fp);
}

运行结果及报错内容

创建文件失败

我的解答思路和尝试过的方法
我想要达到的结果

可以正常的创建文件

这要看你文件放在哪里了
程序如果找不到文件,就会报错。
这个dat文件要放在工程目录下

两个地方都有输出创建文件失败,是写入还是读取?

是不是当前目录为只读