从c

时间:2018-04-21 05:07:35

标签: scanf

这是我的代码

#include<stdio.h>
int main()
{
    FILE *fp;
    int x,y,t,q;
    char ch;
    fp=fopen("sth.xyt","r");
    while ((fscanf(fp,"%d %d %d %d",&x,&y,&t,&q))!=0)
        printf("x=%d y=%d theta=%d quality=%d\n",x,y,t,q);
        ch=getchar();
//  fscanf(fp,"%d %d %d %d",&x,&y,&t,&q);
//  printf("x=%d y=%d theta=%d quality=%d",x,y,t,q);
    fclose(fp);
    return 0;
}

这里sth.xyt有多行。
每行包含4个以空格分隔的数字。 例 115 757 180 6
144 191 214 17
170 114 202 6
182 253 236 80
195 377 56 83
问题是循环无限运行 我还使用了getchar,以便当用户按下回车键时,从文件中读取下一行。那没有发生。 目前我的输出是
一系列无限的 x = 195 y =377θ= 56质量= 83

1 个答案:

答案 0 :(得分:0)

How to find EOF through fscanf?

找到它

我应该在上面的代码中放置!= EOF而不是上面!= 0。

仍然认为getchar不能正常工作。