读取文件结束的判定的概念,使用方法和文件缓冲区的位置

简介: 读取文件结束的判定的概念,使用方法和文件缓冲区的位置
//读取文件结束的判定
//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;
}
//文件缓冲区   程序数据区--->输出缓冲区--->硬盘--->输入缓冲区--->程序数据区
相关文章
|
2月前
|
存储 编译器 C语言
如何在 C 语言中判断文件缓冲区是否需要刷新?
在C语言中,可以通过检查文件流的内部状态或使用`fflush`函数尝试刷新缓冲区来判断文件缓冲区是否需要刷新。通常,当缓冲区满、遇到换行符或显式调用`fflush`时,缓冲区会自动刷新。
|
2月前
|
存储 编译器 C语言
C语言:文件缓冲区刷新方式有几种
C语言中文件缓冲区的刷新方式主要包括三种:自动刷新(如遇到换行符或缓冲区满)、显式调用 fflush() 函数强制刷新、以及关闭文件时自动刷新。这些方法确保数据及时写入文件。
|
2月前
使用 fflush 函数刷新文件缓冲区的示例代码
示例代码展示了如何使用 `fflush` 函数刷新文件缓冲区,确保数据立即写入文件,而不是等待缓冲区满或程序结束时自动写入。
|
7月前
|
存储 文件存储
<文件操作> 文件的打开与关闭,顺序读写,随机读写,二进制文件,读取结束的判定,文件缓冲区
<文件操作> 文件的打开与关闭,顺序读写,随机读写,二进制文件,读取结束的判定,文件缓冲区
45 1
有 3 个进程 P1、P2、P3 协作解决文件打印问题。P1 将文件记录从磁盘读入内存的缓冲区 1,每执行一次读一个记录 ;P2 将缓冲区 1 中的内容复制到缓冲区 2 中,每执行一次复制一个记录 ;
有 3 个进程 P1、P2、P3 协作解决文件打印问题。P1 将文件记录从磁盘读入内存的缓冲区 1,每执行一次读一个记录 ;P2 将缓冲区 1 中的内容复制到缓冲区 2 中,每执行一次复制一个记录 ;
|
存储 缓存 C语言
【C语言进阶】文件的顺序读写、随机读写、文本文件和二进制文件、文件读取结束的判定以及文件缓冲区相关知识(下)
【C语言进阶】文件的顺序读写、随机读写、文本文件和二进制文件、文件读取结束的判定以及文件缓冲区相关知识(下)
|
7月前
|
容器
这个错误是因为在读取文件时,管道已经结束
【1月更文挑战第14天】【1月更文挑战第67篇】这个错误是因为在读取文件时,管道已经结束
114 4
模拟实现库函数strcat--将源字符串的副本追加到目标字符串(理解内存重叠问题)
模拟实现库函数strcat--将源字符串的副本追加到目标字符串(理解内存重叠问题)
|
C语言
【C 语言】文件操作 ( 配置文件读写 | 写出或更新配置文件 | 逐行遍历文件文本数据 | 获取文件中的文本行 | 查询文本行数据 | 追加文件数据 | 使用占位符方式拼接字符串 )
【C 语言】文件操作 ( 配置文件读写 | 写出或更新配置文件 | 逐行遍历文件文本数据 | 获取文件中的文本行 | 查询文本行数据 | 追加文件数据 | 使用占位符方式拼接字符串 )
262 0
|
存储 C语言
【C语言进阶】文件的顺序读写、随机读写、文本文件和二进制文件、文件读取结束的判定以及文件缓冲区相关知识(中)
【C语言进阶】文件的顺序读写、随机读写、文本文件和二进制文件、文件读取结束的判定以及文件缓冲区相关知识(中)