feof() 与 fgetc() 函数

//object: 关于feof的用法 ,
//writer: mike
//time: 2020.09.30
//特别说明: int feof(FILE*fp) 如果没有检测到eof则返回1,如果检测到了,则返回0,我将它理解为末尾有一个符号就像字符串的末尾有\0.
//          int fgetc(FILE*fp) 读取一个char, 并将这个字节转换为整数后返回。 
#include<stdio.h>

int main()
{
FILE* fp;
int c;
//注意这里用的是fopen_s, fp前面有趣地址符。
fopen_s(&fp, "C:\\users\\mike1\\desktop\\1.txt", "r");
if(fp == NULL)
{
    printf("文件打开错误!\n");

}
do
{
    //首先读取一个字符,这里将字符,转换成了无符号的整数。
    c = fgetc(fp);
    //如果feof返回的是1,即文件确实到末尾了,可以理解为没有检测到eof.
    if(feof(fp))
    {

        break;
    }
    else
    {
        printf("%c",c);
    }
    
} while (1);
getchar();


return 0;
}

//问题: 为什么文件是汉字时,也能正常读取?

结果是: 无论文件是英文还是中文都能正确的读取,那么这会不会和c语言的编码方式有关。

posted @ 2020-09-30 02:06  看星星的派大星  阅读(312)  评论(0编辑  收藏  举报