关于C语言 文件读写 feof 函数

 更新时间:2021年10月11日 14:54:26   作者:猿说编程  
这篇文章主要给大家分享的是关于C语言文件读写 feof 函数 ,feof 是 C 语言标准库函数,其功能是检测文件结束符,如果文件结束,则返回非 0 值,否则返回 0,感兴趣的小伙伴请跟小编一起来看看下面文章的内容吧

一.feof 函数简介

feof是一个c语言函数,既可用以判断二进制文件又可用以判断文本文件。feof(fp)有两个返回值:如果遇到文件结束,函数feof(fp)的值为1,否则为0。

EOF是文件结束标志的文件。在文本文件中,数据是以字符的ASCⅡ代码值的形式存放,ASCⅡ代码的范围是0到255,不可能出现-1,因此可以用EOF作为文件结束标志。

当把数据以二进制形式存放到文件中时,就会有-1值的出现,因此不能采用EOF作为二进制文件的结束标志。为解决这一个问题,ASCI C提供一个feof函数,用来判断文件是否结束。

声明如下:

#include <stdio.h>
#include <stdlib.h>

/*
*描述:检测文件结束符
*
*参数:
*   [in]  stream:文件指针句柄
*
*返回值:如果文件结束,则返回非0值,否则返回0,文件结束符只能被 clearerr 清除
*/

int feof(FILE *stream);

二.feof 函数实战

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C语言 文件读写 feof 函数
//@Time:2021/07/22 07:30
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    FILE *stream;
    /*open a file for reading*/
    stream = fopen("DUMMY.FIL", "r");
    /*read a character from the file*/
    fgetc(stream);
    /*check for EOF*/
    if(feof(stream))
        printf("We have reached the end of file\n");
    /*close the file*/
    fclose(stream);
    return 0;
}

注意:feof 判断文件结束是通过读取函数 fread / fscanf / fgetc 等返回错误来识别的,故而判断文件是否结束应该是在读取函数之后进行判断。

比如,在 while 循环读取一个文件时,如果是在读取函数之前进行判断,则如果文件最后一行是空白行,可能会造成内存错误。

到此这篇关于关于C语言 文件读写 feof 函数 的文章就介绍到这了,更多相关C语言 文件读写 feof 函数 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C语言中static的使用方法实例详解

    C语言中static的使用方法实例详解

    static一般用于修饰局部变量,全局变量,函数,下面这篇文章主要给大家介绍了关于C语言中static用法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • Qt中CQGUI框架之阴影圆角窗口实现

    Qt中CQGUI框架之阴影圆角窗口实现

    这篇文章主要介绍了Qt中CQGUI框架之阴影圆角窗口实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • C/C++ Qt 自定义Dialog对话框组件应用案例详解

    C/C++ Qt 自定义Dialog对话框组件应用案例详解

    有时候我们需要一次性修改多个数据,使用默认的模态对话框似乎不太够用,此时我们需要自己创建一个自定义对话框。这篇文章主要介绍了Qt自定义Dialog对话框组件的应用,感兴趣的同学可以学习一下
    2021-11-11
  • Qt网络编程实现TCP通信

    Qt网络编程实现TCP通信

    这篇文章主要为大家详细介绍了Qt网络编程实现TCP通信,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • C++基础入门教程(三):数组、字符串、结构体、共用体

    C++基础入门教程(三):数组、字符串、结构体、共用体

    这篇文章主要介绍了C++基础入门教程(三):数组、字符串、结构体、共用体,需要的朋友可以参考下
    2014-11-11
  • C++命名空间域的实现示例

    C++命名空间域的实现示例

    命名空间域就是一个独立的空间外面不能直接调用该空间域只能用访问限定符指定访问该空间域,本文主要介绍了C++命名空间域的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • C语言实现拼图游戏源码

    C语言实现拼图游戏源码

    这篇文章主要为大家详细介绍了C语言实现拼图游戏源码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • C++内存管理详细解析

    C++内存管理详细解析

    这篇文章主要给大家分享的是C++内存管理的详细内容学习,下面文章围绕C++内存管理的相关资料展开具体学习内容,需要的朋友可以参考一下,希望对你有所帮助
    2021-11-11
  • C++ 中this指针的用途详解

    C++ 中this指针的用途详解

    这篇文章主要给大家介绍了关于C++ 中this指针的用途,文中通过示例代码介绍的非常详细,对大家学习或者使用C++具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2021-09-09
  • C++实现图书馆系统

    C++实现图书馆系统

    这篇文章主要为大家详细介绍了C++实现图书馆系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03

最新评论