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

目录
  • 一.feof 函数简介
  • 二.feof 函数实战

一.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 函数 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • c语言中static修饰函数的方法及代码

    1.静态函数只能在声明它的文件中可见,其他文件不能引用该函数. 2.不同的文件可以使用相同名字的静态函数,互不影响. 3.使用static声明的函数不能被另一个文件引用. 实例 /* file1.c */ #include <stdio.h> static void fun(void) { printf("hello from fun.\n"); } int main(void) { fun(); fun1(); return 0; } /* file2.c */ #inc

  • c语言abort函数实例用法

    1.abort函数的作用是异常终止一个进程,意味着abort后面的代码将不再执行. 2.当调用abort函数时,会导致程序异常终止,而不会进行一些常规的清除工作. 实例 #include <stdio.h> #include <stdlib.h> int main(void) { puts( "About to abort..../n" ); abort(); puts( "This will never be executed!/n" );

  • c语言中main函数用法及知识点总结

    1.main函数是C程序的入口函数,即程序的执行从main函数开始,其他函数的调动也直接或间接地在main函数中调用. 2.main函数的返回值用于解释程序的退出状态. 若返回0,则表示程序正常退出.返回其他数字的含义由系统决定.通常返回非零代表程序异常退出. 实例 #include <stdio.h> #include <string.h> int main(int argc, char **argv) { int i = 0; printf("The program

  • C语言的字符串函数,内存函数笔记详解

    目录 strlen strlen模拟实现 strcpy strcpy的模拟实现 strcat strcat的模拟实现 strcmp strcmp模拟实现 strstr strstr模拟实现 strncpy strncat strncmp strtok memcpy memcpy模拟实现 memmove memmove模拟实现 memcmp 字符分类函数 字符串换函数 总结 strlen 此函数接收一个char*类型参数,返回字符串\0前字符数,注意返回类型是size_t型的 //关于strlen

  • C语言运用函数指针数组实现计算器功能

    本文实例为大家分享了C语言运用函数指针数组制作计算器的具体代码,供大家参考,具体内容如下 先来回顾一下概念: 指针数组 -- 存放指针的数组 函数指针 -- 存放函数地址的指针 函数指针数组 -- 存放函数指针的数组 接下来说说这次要制作的计算器的功能: 1.add -- 加法 2.sub -- 减法 3.mul -- 乘法 4.div -- 除法 0.exit -- 退出 具体来通过代码讲解: (1)首先写一个菜单程序,在运行程序时首先打印一次菜单. void menu() { printf(

  • C语言运用回调函数实现计算器

    本文实例为大家分享了C语言运用回调函数实现计算器的具体代码,供大家参考,具体内容如下 回调函数概念: 回调函数是一个通过函数指针调用的函数,也就是将函数的地址作为参数传递给另一个函数,当这个指针回来调用其指向的函数时,称为回调函数. 本次制作计算器的功能: 1.add -- 加法 2.sub -- 减法 3.mul -- 乘法 4.div -- 除法 0.exit -- 退出 具体来通过代码讲解: (1)首先写一个菜单函数,在运行程序时打印菜单 void menu() { printf("***

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

    目录 一.feof 函数简介 二.feof 函数实战 一.feof 函数简介 feof是一个c语言函数,既可用以判断二进制文件又可用以判断文本文件.feof(fp)有两个返回值:如果遇到文件结束,函数feof(fp)的值为1,否则为0. EOF是文件结束标志的文件.在文本文件中,数据是以字符的ASCⅡ代码值的形式存放,ASCⅡ代码的范围是0到255,不可能出现-1,因此可以用EOF作为文件结束标志. 当把数据以二进制形式存放到文件中时,就会有-1值的出现,因此不能采用EOF作为二进制文件的结束标

  • C语言中的文件读写fseek 函数

    目录 一.fseek 函数简介 二.fseek 函数实战 一.fseek 函数简介 fseek 函数用来移动文件流的读写位置:就好比播放器,可以直接拖拽到精彩的时间点一样,fseek 函数声明如下 #include <stdio.h> #include <stdlib.h> /* *描述:文件读写偏移 * *参数: * [in] stream:文件指针句柄 * [in] offset:偏移量,正数表示正向偏移(向后偏移),负数表示负向偏移(向前偏移) * [in] fromwher

  • C语言文件读写操作介绍与简单示例

    文件的打开函数fopen() 文件的打开操作表示将给用户指定的文件在内存分配一个FILE结构区,并将该结构的指针返回给用户程序,以后用户程序就可用此FILE指针来实现对指定文件的存取操作了.当使用打开函数时,必须给出文件名.文件操作方式(读.写或读写),如果该文件名不存在,就意味着建立(只对写文件而言,对读文件则出错),并将文件指针指向文件开头.若已有一个同名文件存在,则删除该文件,若无同名文件,则建立该文件,并将文件指针指向文件开头. fopen(char *filename,char *ty

  • Android NDK开发(C语言-文件读写)

    目录 1.文件读写 1.1打开文件 1.2关闭文件 1.3读取文件 1.4写入文件 1.5读写二进制I/O文件 1.6获取文件的大小 1.7文本简单加密.解密 1.8二进制文件简单加解密 1.文件读写 一个文件,无论它是文本文件还是二进制文件,都是代表了一系列的字节.C 语言不仅提供了访问顶层的函数,也提供了底层(OS)调用来处理存储设备上的文件. 1.1打开文件 我们可以使用 fopen( ) 函数来创建一个新的文件或者打开一个已有的文件,这个调用会初始化类型 FILE 的一个对象,类型 FI

  • Go语言文件读写操作案例详解

    目录 基本介绍 文件基本操作 读操作 写操作 写操作案例 查看文件或目录是否存在 拷贝文件 基本介绍 文件,对我们并不陌生,文件是数据源(保存数据的地方)的 一种 输入流和输出流 文件在程序中是以流的形式来操作的 流:数据在数据源(文件)和程序(内存)之间经历的路径 输入流:数据从文件到内存的路径 输出流:数据从内存到文件的路径 os.File封装所有文件相关操作,File是一个结构体 文件基本操作 读操作 package main import ( "bufio" "fmt

  • Python文件读写open函数详解

    前言: open()函数的定义:def open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True) 常用的参数有 file.mode.encoding file是文件名称, mode是文件的打开方式.encoding是文件编码格式 mode常见的有 只读模式®.写入模式(w).追加模式(a).读写模式(r+/w+/a+) r+要求文件必须存在:锚点置于末行末位字符处 w+

  • c语言文件读写示例(c语言文件操作)

    方法: 复制代码 代码如下: long filesize(char* filename);char* file_get_contents(char* filename);void file_put_contents(char* filename, char* data); 示例: 复制代码 代码如下: #include <stdio.h>#include <stdlib.h>#include <string.h>long filesize(char* filename)

  • C语言文件操作之fread函数详解

    目录 前言 一.fread 函数 二.缓冲区受限的情况 ( 循环读取文件 | feof 函数判定文件读取完毕 ) 三.处理乱码问题 四.记录读取的字节个数 五.读取到 0 字节的情况 六.读取完毕的情况 七.读取文本文件 “\n” 与 读取二进制文件 “\r\n” 区别 总结 前言 二进制文件读写两个重要的函数 , fread 和 fwrite , fread 用于读取文件 , fwrite 用于写出文件 ; fread / fwrite 函数 既可以操作 二进制文件 , 又可以操作 文本文件

  • Go语言学习笔记之文件读写操作详解

    目录 文件写 文件读 小结 文件操作比较多,分为几篇来写吧.首先是文件的读写,在平时的工程化操作中使用最多. 文件写 样例代码如下 package main import ( "bufio" "fmt" "io" "os" ) //写文件 func DoWriteFile() error { _filePath := "./test.txt" _file, _err := os.OpenFile(_file

  • PHP文件读写操作之文件读取方法详解

    PHP文件读取操作相对于文件写入操作涉及更多的PHP文件操作函数,在代码实例中会详细介绍这些函数. 读取文本文件中存储数据的方式主要涉及的三个步骤及部分文件操作函数如下: 1.打开文件(文件操作函数:fopen) 2.文件数据读取(文件操作函数:fgets.file.readfile.feof等) 3.关闭文件(文件操作函数:fclose) 下面仍然以PHP文件读写操作代码实例讲解文件读取方法的具体应用,在实例中,通过调用不同的PHP文件读取操作函数读取文本文件中的数据,你可以加深PHP文件读取

随机推荐