精华内容
下载资源
问答
  • 文件结束的判定与feof函数
    2022-03-03 22:57:28

    文件结束的判断:

    1.fget()读取结束后返回EOF。

    #include<stdio.h>
    #include<stdlib.h>
    int main() {
    	FILE* fp = fopen("test2.txt", "r");
    	if(fp == NULL)
        {
            perror(fp);
            return 0;
        }
    	while (fgetc(fp)!=EOF) {
    		;
    	}
    	fclose(fp);
    	return 0;
    }

    2.fgets()读取结束时返回NULL。

    #include<stdio.h>
    #include<stdlib.h>
    int main() {
    	FILE* fp = fopen("test2.txt", "r");
    	char s[100];
        if(fp == NULL)
        {
            perror(fp);
            return 0;
        }
    	for (i = 0; fgets(str[i], 1, fp) != NULL; i++) { 
    		;
    	}
        	fclose(fp);
    	return 0;
    }

    3.二进制文件可以用fread()进行读取,若读取失败返回0。

    #include<stdio.h>
    #include<stdlib.h>
    int main() {
    	FILE* fp = fopen("test2.txt", "r");
    	char s[100];
        if(fp == NULL)
        {
            perror(fp);
            return 0;
        }
        int i = 0;
    	while (fread(&s[i++], sizeof(char[0]), 1, fp)) {
            ;	
        }
        fclose(fp);
    	return 0;
    }

    feof()函数:

    int feof( FILE *stream )
    1.当文件读取结束时, 若是遇到文件尾结束,则返回1,否则返回0.

    2.在文件读取过程中不能用feof函数的返回值来判断是否读取到文件尾。

    3.当文件读取结束的时候,可以判断是读取失败结束,读取道文件尾结束。

    更多相关内容
  • feof函数的使用

    2022-04-03 22:34:47
    feof函数的功能 ​feof函数的返回值和头文件 头文件是<stdio.h> feof函数的功能 从一个流中检测文件是否读取到末尾 #include<stdio.h> int main() { FILE* fp = fopen("data.txt", "r"); //...

    目录

    feof函数的功能

    feof函数的返回值和头文件


    头文件是<stdio.h>

    feof函数的功能

     从一个流中检测文件是否读取到末尾

    #include<stdio.h>
    
    int main()
    {
    	FILE* fp = fopen("data.txt", "r");	//打开一个文件指针,以w(可写入)的方式打开data.txt这个文件,使用的是相对路径
    	char c = 0;
    	if (fp != NULL)	//判断是否开辟成功
    	{
    		while ((c = fgetc(fp)) != EOF)	//读取数据
    		{
    			printf("%c ", c);	//打印读取的数据
    		}
    		printf("\n");
    		if (feof(fp))	//判断是因为什么结束文件读取的
    		{
    			printf("end");
    		}
    		else
    		{
    			printf("error");
    		}
    	}
    	return 0;
    }

    文件data.txt中的内容是abcde,这次是测试是读取到文件末尾结束的

    feof函数的返回值和头文件

    返回值:int,读取到文件末结束返回一个非零值,因为错误结束返回0

    参数:stream,类型FILE*,输入想要检测的文件指针

    展开全文
  • 详细讲解了feof函数多读一次问题解决方案
  • c语言feof函数 C语言中的feof()函数 (feof() function in C) Prototype: 原型: int feof(FILE* filename); Parameters: 参数: FILE *filename Return type: int(0 or 1) 返回类型: int(0或1) Use of ...

    c语言feof函数

    C语言中的feof()函数 (feof() function in C)

    Prototype:

    原型:

        int feof(FILE* filename);
    
    

    Parameters:

    参数:

        FILE *filename
    
    

    Return type: int(0 or 1)

    返回类型: int(0或1)

    Use of function:

    使用功能:

    In C language when we are using a stream that links with a file, then how can we determine we come to the end of a file. To solve the problem we have to compare an integer value to the EOF value. Through the feof() function we determine whether EOF of a file has occurred or not. The prototype of this function is int feof(FILE* filename);

    在C语言中,当我们使用与文件链接的流时,那么如何确定到文件末尾。 为了解决该问题,我们必须将整数值与EOF值进行比较。 通过feof()函数,我们确定文件的EOF是否发生。 该函数的原型是int feof(FILE * filename);

    It returns the value zero when end of the file has not occurred, otherwise it returns 1.

    未出现文件结尾时,它返回零值;否则返回1。

    feof()在C中的示例 (feof() example in C)

    #include<stdio.h>
    #include<stdlib.h>
    
    int main()
    {
    	FILE *f;
    	char str[100];
    	
    	//Check the existence of that file
    	if((f=fopen("includehelp.txt","r"))==NULL){
    		printf("Cannot open the file...");
    		//if not exist program is terminated
    		exit(1);
    	}
    	
    	printf("File content is--\n");
    	//print the strings until EOF is encountered
    	while(!feof(f)){
    		fgets(str,100,f);
    		//print the string
    		printf("%s",str);
    	}
    	
    	//close the opened file
    	fclose(f);
    	
    	return 0;
    }
    
    

    Output

    输出量

    feof example in c

    翻译自: https://www.includehelp.com/c-programs/feof-function-in-c-language-with-example.aspx

    c语言feof函数

    展开全文
  • feof的使用 之前写代码的时候,喜欢直接使用while(0==feof(frp))

    feof的使用不当会出现的问题

    写读取文件的代码,喜欢直接使用while(0==feof(frp))来判断文件是否执行到末尾,如果frp指向的文件有内容的话,feof可以正确判断是否执行到末尾,但是如果文件为空,则会进入死循环,这个问题困扰了我很久。
    例如:

    void read_tchfile(void)
      {
          FILE *frp=fopen("tch.txt","r");
          if(NULL==frp)
              return ;
          while(0 == feof(frp))
          {
    fscanf(frp,"姓名:%s 性别:%s 工号:%s\n是否在校:%h    hd 是否登录:%hhd 是否锁定:%hhd\n",tch[num].name,tch[num].sex,tch[num].id,&tch[num].on_job,&tch[num].login,&tch[num].lock);
             num++;
          }
          fclose(frp);
         return;
      }
    

    如果读取的tch.txt文件为空,就会进入死循环。

    feof判断是否执行到文件末尾的原理(大概)

    看了一些关于feof原理的博客,自己总结出来的关于feof原理暂定的说法:
    feof会读取文件的文件结束符,但是是通过前后查找的方式。
    比如你的指针指向10地址,feof会去9和11里面查找文件结束符而不会在10中查找,所以当文件为空时,因为文件结束符的原因,文件里面至少存这文件结束符,文件中的指针会直接指向文件结束符,然后前后查找,找不到文件结束符,文件指针没读取到数据也不会移动,然后就陷入死循环了。

    陷入死循环的解决方法

    先使用getc(),从文件中读取一个字符,让光标向后移动一个字符。这时空文件的指针就已经移动到文件结束符的后面,这样前后查找就可以找到文件结束符从而跳出循环了,要注意的是,移动文件读取数据的指针后要把它移回来,可以用rewind();
    例如:

    `void read_tchfile(void)
    {
    	FILE *frp=fopen("tch.txt","r");
    	getc(frp);
    	if(feof(frp))
    		return ;
    	else
    		rewind(frp);
    	while(0==feof(frp))
    	{
    		fscanf(frp,"姓名:%s 性别:%s 工号:%s\n是否在校:%hhd 是否登录:%hhd 是否锁定:%hhd\n",tch[tch_num].name,tch[tch_num].sex,tch[tch_num].id,&tch[tch_num].on_job,&tch[tch_num].login,&tch[tch_num].lock);
    		tch_num++;
    	}
    	fclose(frp);
    	return;
    }
    
    展开全文
  • 文件结束判定与feof函数

    千次阅读 多人点赞 2019-06-18 17:14:29
    文件结束判定与feof函数 目录 文件结束判定: 方法1 :fget()函数返回EOF 方法2 :fgets()返回NULL 方法3 :利用文件长度 方法4 : 二进制文件利用fread()返回值 ...
  • C语言的feof函数

    2019-09-05 23:09:02
    原型:int feof(FILE *_F) 功能:检测打开的流的“光标”指针是否到达文件末尾。 参数值:指向流的文件指针。 返回值:若到达文件尾部,返回0;否则返回非0值。 用法:例子: int main()//先建立要读取数据的文件,...
  • C语言:feof函数的坑

    2020-02-28 22:40:14
    目录引言feof()函数 引言 做课设的时候踩到这个坑,跟大家分享一下 feof()函数 看一下下面的代码 #include<stdio.h> int main() { FILE *fp = fopen("try", "w"); if (feof(fp) == 1) puts("文件已结束"); ...
  • eof() 函数检测是否已到达文件末尾(eof).如果文件指针到了 EOF 或者出错时则返回 TRUE,否则返回一个错误(包括 socket 超时),其它情况则返回 FALSE.语法:feof(file)参数 描述file 必需,规定要检查的打开文件.说明:...
  • feof函数读取txt文件时多读一行解决方法
  • C语言中关于feof函数&fgetc函数一些理解前言问题解决 前言 在使用C语言来对文件操作的时候,我们经常使用一些feof、fgetc函数,但是在使用的过程中也会遇到一些小问题。 问题 在今天编写C语言时候,我写了如下一...
  • C语言程序中如何正确使用feof函数.pdf
  • 1.fgetc()函数返回EOF 2.fgets()函数返回NULL 文件结束判定 1.fgetc()函数返回EOF EOF(End of file)是C/C++里面的宏定义,具体定义式是#define EOF -1 EOF是文件结束标志 但是, EOF并不是真实存在于文件...
  • MATLAB feof和~feof函数用法

    千次阅读 2018-05-29 21:07:21
    函数feof(fid) 用法:文件指针 fid 到达文件末尾时返回“真”值;否则返回“假”; ~feof 是在 feof 前加了“非”,是逻辑表达式:文件指针到达文件末尾时 该表达式值为“假”;否则为“真”; while ~feof 表示 ...
  • C语言教材中对feof函数的常见误解与误用.pdf
  • 一.feof 函数简介 二.feof 函数实战 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.feof 函数简介 feof 是 C 语言标准库函数,其功能是检测文件结束符,如果文件结束,则...
  • C语言中文件结束符、FEOF函数与文档编码的探讨.pdf
  • feof函数

    2016-09-20 13:51:00
    feof是一个多义词,请在下列义项上选择浏览(共2个义项)添加义项 ▪函数名 ▪检测流文件指针是否已到达文件结尾 收藏 查看我的收藏 543有用+1 已投票 10 feof函数名) 编辑 锁定 ...
  • C语言再学习 -- EOF、feof函数、ferror函数

    万次阅读 多人点赞 2016-11-09 15:47:45
    EOF是end of file的缩写,表示"文字流"(stream)的结尾。这里的"文字流",可以是文件(file),也...在C语言中,或更精确地说成C标准函数库中表示文件结束符(end of file)。在while循环中以EOF作为文件结束标志,
  • feof函数详解

    千次阅读 2014-07-25 13:14:02
    feof函数详解 网上很多feof讲解的很模糊,百看不如一试,经过笔者在编译器的亲自测试之后总结如下: 第一种情况: 如果没有使用fread读取文件而直接使用feof函数得到的返回值是0; 第二种情况: 使用fread读取...
  • 函数原型: int feof ( FILE * stream ); 头文件: #include <stdio.h> 参数: stream FILE结构的指针。指向一个文件流对象的指针。例如: FILE * fp = fopen("test.ini"); fp 即这...
  • C语言——feof函数

    2020-07-09 18:18:38
  • 关于feof函数多读一次的问题

    千次阅读 2016-11-16 19:39:11
    原因就是在读完最后一个字符后,fp->flag仍然没有被置为_IOEOF,因而feof()仍然没有探测到文件结尾。直到再次调用fgetc()执行读操作,feof()才能探测到文件结尾。 feof()可以用EOF代替吗?不可以。fgetc返回-1时,有...
  • feof函数多读一次问题分析,详细讲解为什么会多读一次原因
  • C语言中的feof函数

    2018-09-07 01:22:21
    函数名  feof 功 能 检测流上的文件结束符 用 法 int feof(FILE *stream); 程序例 #include include include
  • 关于使用fgetc函数和feof函数的一些注意事项 众所周知,文件分为二进制文件和文本文件,它们在磁盘中的存储方式是相同的,都是二进制存储,但是它们的读取方式不同。对于文本文件,我们通常使用逐个字节读取的方式...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,300
精华内容 10,920
关键字:

feof函数