c - Ftell 停止返回

  • 本文关键字:返回 Ftell file ftell
  • 更新时间 :
  • 英文 :


好吧,在向后读取我的文件并确保我不在顶部时,在调试器中,我意识到 ftell 停止返回位置,任何人都可以提供一些信息吗?

int Dtl(Acc *user)
{
    FILE *dtl_Fp;
    trans_Pass dislog[10];
    int i=0,x=-1,r_Val;
    My_Convertor();
    dtl_Fp=Opnfile("Tempfile",r_B,dnt_ret_fp);
    system("cls");
    printf("Types FormatnW-WithdrawtDep-DeposittSch-Pay School FeennID:NOtTyp:AmountttDaten");
    while (1)
    {
        fseek(dtl_Fp,sizeof(trans_Pass)*(x),SEEK_END);
        fread(&dislog[i],sizeof(trans_Pass),1,dtl_Fp);
        r_Val=ftell(dtl_Fp);
         if ((ftell(dtl_Fp)==0)){break;}
         if(dislog[i].id_No==user->id_No){printf("%snn",dislog[i].info);}
        i++;x--;
    }
    fclose(dtl_Fp);
}

它可能与以下方面有关:

r_Val=ftell(dtl_Fp);
 if ((ftell(dtl_Fp)==0)){break;} 

你调用了 ftell() 两次,但从未使用 r_val。

代码段中没有任何内容允许我查看 fseek() 中的参数 sizeof(trans_Pass)*(x) 的值,但如果它不是合法值(0,文件大小),则可能会导致意外结果。

不能保证ftell()不会返回 -1。 你没有检查那个。 在错误条件下,ftell 返回 -1,然后将 errno 设置为非零值,该值可用于获取有关错误性质的信息。

相关内容

  • 没有找到相关文章

最新更新