fgets是获取文件一行包括换行符(遇到结束符停止)

while(!feof(fp)){
    fgets(arr,sizeof(arr),fp);
    show(arr);
}

fscanf是获取文件一行不包括换行符(遇到结束符停止)

while(!feof(fp)){
    fscanf(fp,"%s",arr);
    show(arr);
}

具体测试代码

#include<stdio.h>
#include<stdlib.h>
#define max 100
void show(char arr[max]);
void start(char arr[max]){
    FILE *fp=fopen("新建文本文档 (2).txt","r");
    if(fp==NULL){
        printf("no\n");
    }else{
        printf("yes\n");
    }
    while(!feof(fp)){
        fscanf(fp,"%s",arr);
        show(arr);
    }
    while(!feof(fp)){
        fgets(arr,sizeof(arr),fp);
        show(arr);
    }
}
void show(char arr[max]){
    int i;
    printf("%s",arr);
}
int main(){
    int i;
    char arr[max]={0};
    show(arr);
    start(arr);
}

feof(fp)
其功能是检测流上的文件结束符,如果文件结束,则返回非0值,否则返回0(即,文件结束:返回非0值,文件未结束,返回0值)

Last modification:September 29, 2022
如果觉得我的文章对你有用,请随意赞赏