大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
feof是一个多义词,请在下列义项上选择浏览(共2个义项)添加义项
- ▪函数名
- ▪检测流文件指针是否已到达文件结尾
我的收藏
- 中文名
- Fenton
- 类 型
- c语言函数
- 功 能
- 检测流上的文件结束符
- 用 法
- int feof(FILE *stream);
feof函数名
feof功 能
clearerr().
feof用 法
feof程序例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #include<stdio.h> int main( void ) { FILE *stream; /*openafileforreading*/ stream = fopen ( "DUMMY.FIL" , "r" ); /*readacharacterfromthefile*/ fgetc (stream); /*checkforEOF*/ if ( feof (stream)) printf ( "We have reached the end of file\n" ); /*closethefile*/ fclose (stream); return 0; } |
字符的ASCⅡ代码值的形式存放,普通字符的ASCⅡ代码的范围是32到127(十进制),EOF的16进制代码为0xFF(十进制为-1),因此可以用EOF作为文件结束标志。
[1]
指针的位置,“C”语言的“feof()”函数返回的是最后一次“读操作的内容”。多年来把“位置和内容”相混,从而造成了对这一概念的似是而非。
linux 下编译通过、vc下也行。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
#include <stdlib.h> #include <stdio.h> int main( void ) { FILE *in, *out; int ch; if ((in = fopen ( "./output.txt" , "r" ))== NULL) //input.txt must exist in current directory. { fprintf (stderr, "Cannot open inputfile\n" ); exit (0); } if ((out= fopen ( "./input.txt" , "w" ))==NULL) { fprintf (stderr, "Can not open the file.\n" ); exit (0); } while (1) { ch= fgetc (in); if (ch == -1) break ; fprintf (stdout, "The ASC of char %c is %d\n " ,ch,ch); fputc (ch,out); } fclose (in); fclose (out); return 0; } |
stdio.h中可以看到如下定义:
1 2 3 4 5 6 7 8 9 |
#define EOF (-1) #define _IOEOF 0x0010 #define feof(_stream) ((_stream)->_flag & _IOEOF) int c; while (! feof (fp)) { c = fgetc (fp); printf ( "%X\n" , c); } |
1 2 3 4 5 6 7 |
int c; c = fgetc (fp); while (! feof (fp)) { printf ( "%X\n" , c); c = fgetc (fp); //最后一个c的值为-1,但是无妨,因为其他所有的循环操作都要放在此句话上面 } |
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/166461.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...