//读取文件结束的判定
//1.在文件读取过程中,不能用feof函数的返回值直接用来判断文件的是否结束,
// feof应用于当文件读取已经结束时,判断是读取失败还是遇到文件未结束
//
//2.fgetc函数在读取结束时,返回的是EOF,正常读取时,返回的是读取到字符的ASCII
//
//3.fgets函数在读取结束时,返回的是NULL,正常读取时,返回的是存放字符串的起始地址
//
//4.fread函数在读取时,返沪的是实际读取的完整元素的个数,如果发现
//读取到的完整的元素个数<指定元素个数,则是最后一次读取了
//写代码把text.txt文件拷贝一份,生成test2.txt
int main()
{
FILE* pfread = fopen("test.txt", "r");//读
if (pfread == NULL)
{
return 1;
}
FILE* pfwrite = fopen("test2.txt", "w");//写
if (pfwrite = NULL)
{
fclose(pfread);
pfread = NULL;
return 1;
}
//文件打开成功
//读写文件
int ch = 0;
while (ch = fgetc(pfread!=EOF));//判断是否结束
{
fputc(ch, pfwrite);
}
if (feof(pfread))//如果为真
{
printf("遇到文件结束,文件正常结束\n");
else if(ferror(pfread))
{
printf("文件读取失败结束\n");
}
}
//关闭文件
fclose(pfread);
pfread = NULL;
fclose(pfwrite);
pfwrite = NULL;
return 0;
}
//文件缓冲区 程序数据区--->输出缓冲区--->硬盘--->输入缓冲区--->程序数据区