求解析这段代码的作用

if ((fp=fopen(filename,"rt"))==NULL) {
        printf("文件不存在!!!\n\n");
    }
    ch1=fgetc(fp);
//    while (ch1!=EOF)
//        ch1=fgetc(fp);    //fgetc(FILE *fp);
    fclose(fp);
    fp=fopen(filename,"r");
    fgets(ch,MAX,fp);//读取字符到ch中
    fclose(fp);

//注释部分代码,看不太懂,好像有点头绪,又好像没有,求解析

解释如下图所示,如有帮助,请帮忙采纳一下,谢谢。

img

判断当前是否读到了文件末尾。
如果没有,就继续读取文件中的内容。
EOF 它是end of file的缩写,表示"文字流"(stream)的结尾。每个文件的结尾处,有一个叫做EOF的特殊字符,读取到这个字符,操作系统就认为文件结束了。