提问人:Anil 提问时间:11/15/2021 更新时间:11/15/2021 访问量:44
为什么我的 fscanf() 会进入无限循环?
Why does my fscanf() go into an endless loop?
问:
#define F_PWD_FSCANF "%05d%30[^\n]%15s%25s%30s\n"
#define F_PWD_FPRINTF "%05d%-30s%-15s%-25s%-30s\n"
int main(){
FILE *fp=fopen(FILENAME(F_PWD),"a+");
if (!fp)
{
perror("ERROR:");
FreeMalloc(pw,pw_t);
exit(EXIT_FAILURE);
}
while(!feof(fp))
{
count++;
fscanf(fp,F_PWD_FSCANF,&pw_t->id,pw_t->name,pw_t->userID,pw_t->pwd,pw_t->emailID);
if ((strcmp(pw->userID, pw_t->userID)==0) || (strcmp(pw->emailID, pw_t->emailID)==0))
{
printf("\n[%s]-[%s] ",pw->userID,pw_t->userID);
printf("\n[%s]-[%s] ",pw->emailID,pw_t->emailID);
COLOR(RED);
ToastMsg(TOAST_MSG_USER_EMAIL_EXISTS, row_x, col_y,1500);
COLOR(YEL);
ToastMsg( TOAST_MSG_OPTION, row_x, col_y,0);
retVal=1;
while_loop=false;
break;
}
printf("\neof loop");
}
return 0;
}
使用 fprintf() 创建的文件
00001Anil Dhar anil1960 -N[VY&# [email protected] 00002Rita Dhar anil1960 -_VaN&# [email protected] 00003Shailja Dhar shailja1960 -'UNVYWN&# [email protected]
00004Tony P Singh tony1234 -a[f ! [电子邮件保护]
但是,我无法使用 fscanf() 读取此文件,因为它不满足 eof 条件。结果,它进入了一个无休止的循环。
fprintf() 和 fscanf() 格式说明符被定义为预处理器 dietcrivers。
代码有什么问题?
答: 暂无答案
评论