C语言文件输入输出问题

2025-03-13 08:03:57
推荐回答(1个)
回答1:

void save(int n){
/******start******/
    int i,j;
    FILE *fp;
    if((fp=fopen("lb8204.txt","w"))==NULL){
        printf("Open the file failure...\n");
        exit(0);
    }
    for(j=0,i=7;i<1000 && j        if(i%7==0 || i%10==7 || i/10%10==7 || i/100==7){
            fprintf(fp,"%4d",i);
            if(++j%10==0)
                fputc('\n',fp);
        }
    fclose(fp);
    /******end******/
}

另:此题有错误——

while(!feof(fp)){
    fgets(str, 44, fp);
    printf("%s", str);
}

得改成

while(fgets(str, 44, fp),!feof(fp)){
    printf("%s", str);
}

或改成

fgets(str, 44, fp);
while(!feof(fp)){
    printf("%s", str);
    fgets(str, 44, fp);
}

否则,最后会重复读出一行或乱码。正规书上的题出此显错,有点贻笑大方……