0

当我第一次运行该程序时,该文件被创建。但似乎 while 循环需要很长时间才能结束。由于文件现在是空的,它不会在文件的开头得到一个 EOF 吗?

#include<stdio.h>
void main(){
    FILE *p;
    int b, a=0;b=0;
    p=fopen("text.txt", "a+");
    while((b=fscanf(p,"%d",&a)) != EOF)
        printf("%d\n",a);
    fseek(p, 0, SEEK_END);
    fprintf(p, " %d %d",1,6);
    fflush(p);
    fclose(p);
}
4

1 回答 1

1

确保fscanf 返回 1

#include<stdio.h>
int main(){
    FILE *p;
    int b=0, a=0;
    p=fopen("text.txt", "a+");
    while((b=fscanf(p,"%d",&a)) == 1)
        printf("%d\n",a);
    // no need to seek, or flush
    fprintf(p, " %d %d",1,6);
    fclose(p);
    return 0;
}
于 2013-06-19T02:54:50.473 回答