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 に答える