gpt4 book ai didi

c - 弗特尔停止回归?

转载 作者:行者123 更新时间:2023-11-30 17:35:51 25 4
gpt4 key购买 nike

好吧,当向后读取我的文件并确保我不在顶部时,在调试器中我意识到 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 Format\nW-Withdraw\tDep-Deposit\tSch-Pay School Fee\n\nID:NO\tTyp:Amount\t\tDate\n");
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("%s\n\n",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 设置为非零值,该值可用于获取有关错误性质的信息。

关于c - 弗特尔停止回归?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22873038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com