c 语言文本文件判断是否到达结尾的问题
在c语言中,判断文件结尾有两种方法,第一种是使用feof()函数,feof(fp)用于测试fp所指向的文件的当前状态是否为“文件结束”。如果是,函数则返回的是非0值(真),否则为0(假),要注意的是,feof()是先读文件在判断是不是到达文件结束,所以当使用feof()作为循环判断条件的话,就需要注意一种情况,就是当文件为空的时候,它也会读取一次文件内容然后再跳出循环,所以有可能会读取到一些不可知的内容出来。
EOF是文本文件结束的标志。在文本文件中,数据是以字符的ASCⅡ代码值的形式存放,ASCII代码值的范围是0~255,EOF的16进制代码为0xFF(十进制为-1),因此可以用EOF作为文件结束标志。但是如果文件格式为二进制文件,就不适合用EOF来判断文件到达结尾了,因为有可能文件中也存在一个数据为0xFF,这样当读取到这个数据是,就无法判断是到达文件结尾,还是读取到的是文件的内容了。
这里需要解决的就是feof()作为循环条件遇到空文件时的情况,网上找了好多,但是都没有实现,然后自己受到了点启发。想到了一个笨办法,这里贴下代码
1 void read(void) 2 { 3 int ch; 4 FILE *fp; 5 if((fp=fopen("txt.txt","rt"))==NULL) 6 { 7 printf("读取信息失败,请重试"); 8 getchar(); 9 exit(1); 10 } 11 ch=fgetc(fp); //首先从文件中读取,判断是不是文件结束符EOF 12 if(ch==EOF) 13 { 14 printf("什么都没有"); 15 fclose(fp); 16 return; //如果是直接关闭文件退出 17 } 18 rewind(fp); //这步很重要,如果判断不是,让文件内部的指针重新指向文件开头 19 while(!feof(fp)) 20 { 21 ... //正常读取文件内容 22 }
转载于:https://www.cnblogs.com/kingos/p/4572906.html
c 语言文本文件判断是否到达结尾的问题相关推荐
- 如何判断无法到达目标的拼图_拼图项目的动机和目标
如何判断无法到达目标的拼图 几周前,我写了一篇关于Jigsaw项目可能如何破坏现有代码的文章 . 那么我们得到什么回报呢? 让我们看一下项目解决的痛点及其在Java 9中解决问题的目标. 系列 这篇文 ...
- 为什么文本文件以换行符结尾?
我假设这里的每个人都熟悉所有文本文件应以换行符结尾的格言. 多年来我一直都知道这个"规则",但我一直在想 - 为什么? #1楼 我总是认为规则来自于解析没有结束换行符的文件很困难的 ...
- c语言判断非法字符题目,C语言考试题库之判断题-c语言考试判断题
<C语言考试题库之判断题-c语言考试判断题>由会员分享,可在线阅读,更多相关<C语言考试题库之判断题-c语言考试判断题(7页珍藏版)>请在人人文库网上搜索. 1.三.判断题(1 ...
- 10、(go语言)文本文件处理
10.Go语言文本文件处理 1 字符串处理 1.1 字符串的处理 1.1.1 Contains 1.1.2 Join 1.1.3 Index 1.1.4 Repeat 1.1.5 Replace 1. ...
- linux检查socekt是否断开,如何在C语言中判断socket是否已经断开
如果不主动关闭socket的话,系统不会自动关闭的,除非当前进程挂掉了,操作系统把占用的socket回收了才会关闭.小编今天跟大家简单介绍下如何在C语言中判断socket是否已经断开 下面来介绍判断非 ...
- 【C 语言】文件操作 ( 文件结尾判定 )
文章目录 一.文件结尾判定 1.使用 EOF 判定 2.使用 feof 函数判定 一.文件结尾判定 1.使用 EOF 判定 文件结尾标识符是 EOF ; #define EOF (-1) 使用 get ...
- 总结和分析几种判断RecyclerView到达底部的方法
上一篇文章我讲到用事件分发的原理结合SwipeRefreshLayout写一个RecyclerView的上下拉,里面有一个判断RecyclerView是否到达底部的方法isBottom.我的同事用了这 ...
- C语言程序判断计算机的CPU大小端
如何判断一台计算机的CPU是大端还是小字端对齐呢? 那么首先得了解何为大端,何为小端,明确一下概念. 所谓大端模式,是指字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中. 小端格式:与大 ...
- C语言条件判断 if / else - C语言零基础入门教程
目录 一.C 语言条件判断 if 1.if 语法 2.if 实战 二.C 语言条件判断 if / else 1.if / else 语法 2.if / else 实战 三.猜你喜欢 零基础 C/C++ ...
- c语言中判断输入是否为数字_C语言编程判断回文数
大家好,我是阿汤哥,前两天在公众号后台收到一个朋友问回文数,今天我们就来谈谈怎么用C语言编程判断一个数是不是回文数. 怎么判断回文数? 首先看定义,什么是回文数. 回文数 定义: 设n是一任意自然数. ...
最新文章
- 《人月神话》——外科手术队伍——笔记!
- mysql分页与分页性能查询优化
- 一个TextView使用不同的颜色
- 乔布斯,影响了一个时代的人
- tf.contrib.rnn.core_rnn_cell.BasicLSTMCell should be replaced by tf.contrib.rnn.BasicLSTMCell.
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库...
- 移动硬盘安装win10操作系统
- win7找回快速启动栏
- JAVA方式对接FIL节点钱包(也有离线)
- 在AWS Lambda上部署EC2编译的FFmpeg工具——自定义层的方案
- 基于ZYNQ的开源CANopen协议栈CANFestival移植
- 英文 SCI 论文写作常用句式(保持更新)
- <script>alert(1)</script>怎么在页面显示且不出现功能
- 听课感悟——信息与信息特征
- MindSpore【数据集功能】无法查看数据集
- 单细胞数据分析工具scvi介绍
- SAP 中的各种接口技术总结
- Linux:python捕获异常,模板,文件以及数据存储
- H5新增语义化标签以及属性
- Java实现模拟KTV点歌系统
热门文章
- SQLSERVER中使用函数去掉数据中的空格,批量删除数据中空格、换行符?,替换字段中字符串
- layui时间选择30分钟为单位_layui 时间选择器实现季度选择器
- Echarts多条折线图 y轴数值与实际值不符解决方法
- 如何编译并修改FBReader的package(安卓平台)
- 六石管理学:头目们为什么要忽略产品质量
- CSDN发布博文时出错的截图
- config.guess: unable to guess system type、config.sub: missing argument
- TeaVM奇怪的编译现象:同样代码,编译有时通过有时不通过
- Ffmpeg下载WINDOWS、MAC编译结果
- 百度的搜索好厉害,刚刚发文就能搜索到