C 语言中的文件初始化不正确



我有一段代码给了我一个错误。File指针引发NULL错误,尽管它已正确声明。

    int PySchFee(Acc *py_User)
{
    FILE *py_Fp;
    int acn_Num,sch_Id;
    float amnt=0;
     system("cls");
    /* printf("Please enter Account Numbern");
     scanf("%d",&acn_Num);
     printf("Please enter School Id Numbern");
     scanf("%d",&sch_Id);*/
     printf("Please enter Amount to payn");
     scanf("%f",&amnt);
     if ((py_User->bal-amnt)>=1000)
     {
         py_User->bal= py_User->bal-amnt;
         AppCharge(py_User);
         Rcrd_Write(py_Fp,py_User,NULL);
         Svetyp(py_User,amnt,py_Sch_Fee);
         fclose(py_Fp);
         return 1;
     }
     else
     {
         fclose(py_Fp);
         Error(broke);
         return 0;
     }
}

你永远不会为py_Fp分配任何东西,因此它包含垃圾,因此崩溃。

你必须写一些类似的东西

 py_Fp = fopen("myfile", "w") ;

在打电话Rcrd_Write之前

你在初始化之前正在使用py_Fp,你应该在实际使用它之前添加一个像py_Fp = fopen(...);这样的语句,比如Rcrd_Write(py_Fp,py_User,NULL);

相关内容

  • 没有找到相关文章

最新更新