大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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账号...