feof是c标准函数,原型:int feof(FILE *stream)是feof函数原型,文件结束返回非0值,否则返回0。fp对应上面的文件流,!是bool取反的意思,!feof(fp)组合起来就是文件尚未结束的逻辑。
站在用户的角度思考问题,与客户深入沟通,找到六安网站设计与六安网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计制作、成都网站设计、企业官网、英文网站、手机端网站、网站推广、域名注册、网页空间、企业邮箱。业务覆盖六安地区。
feof是一个c语言函数,既可用以判断二进制文件又可用以判断文本文件。feof(fp)有两个返回值:如果遇到文件结束,函数feof(fp)的值为1,否则为0。
EOF是文件结束标志的文件。在文本文件中,数据是以字符的ASCⅡ代码值的形式存放,ASCⅡ代码的范围是0到255,不可能出现-1,因此可以用EOF作为文件结束标志。
当把数据以二进制形式存放到文件中时,就会有-1值的出现,因此不能采用EOF作为二进制文件的结束标志。为解决这一个问题,ASCI C提供一个feof函数,用来判断文件是否结束。
扩展资料:
feof的正确写法:
在VC里,只有当文件位置指针(fp-_ptr)到了文件末尾,然后再发生读/写操作时,标志位(fp-_flag)才会被置为含有_IOEOF。然后再调用feof(),才会得到文件结束的信息。
因此,如果运行如下程序:
char c;
while(!feof(fp))
{
c = fgetc(fp);
printf("%X/n", c);
}
会发现多输出了一个FF,原因就是在读完最后一个字符后,fp-flag仍然没有被置为_IOEOF,因而feof()仍然没有探测到文件结尾。直到再次调用fgetc()执行读操作,feof()才能探测到文件结尾。这样就多输出了一个-1(即FF)。
正确的写法应该是:
char c;
c = fgetc(fp);
while(!feof(fp))
{
printf("%X/n", c);
c = fgetc(fp);
}
参考资料来源:百度百科-feof
feof是C语言标准库函数,其原型在stdio.h中,其功能是检测流上的文件结束符,如果文件结束,则返回非0值,否则返回0(即,文件结束:返回非0值,文件未结束,返回0值),文件结束符只能被clearerr()清除。(这里的检测流上的文件结束符就相当于声卡检测电流信号的一个过程)
int feof(FILE *stream);
参数
流 :FILE结构的指针
注意:feof判断文件结束是通过读取函数fread/fscanf等返回错误来识别的,故而判断文件是否结束应该是在读取函数之后进行判断。比如,在while循环读取一个文件时,如果是在读取函数之前进行判断,则如果文件最后一行是空白行,可能会造成内存错误。
扩展资料
相关函数
getc()
功能:函数从流中返回一个字符值。
语法:int getc(FILE * stream)
返回值:整数值。
函数种类:“stdio.h”
内容说明:此函数和fgetc函数相似,但它是以一个宏来实现的。另外它将不止一次地计算流参数咖,这对通常的宏的规则来说是一个例外。getc是一个已经高度优化的函数,所以该函数是进行单个字符读操作的最好的函数。
参考:如fputc();fgetc();putc();fopen()。
fputs()
功能:将字符串中的内容写到指定的流中。
语法: int fputs(const char *s,FILE * stream)
返回值:整数值。
函数种类:“stdio.h”
内容说明:函数将字符串指针s所指向的字符串中的内容写到流stream中。标志结束的空字符(NULL)不写。函数也不另外增加一个换行符。只是输出字符串中的所有字符。 函数操作成功时返回值为0,否则返回非0值。
如果流是以文本形式打开的,就会对有些字符进行翻译操作。这意味着字符串可能会与文件内容之间没有一一对应的映射关系。然而,当文件以二进制打开时,不发生字符翻译,在字符串与文件内容之间存在一一对应的映射关系。
参考资料来源:百度百科-fgetc
参考资料来源:百度百科-feof
feof()是文件结束检测函数,如果没有结束,返回值是0,结束了是1;
由于feof(fp)返回0才是没有结束,所以通常写成while(!feof(fp)),这样使得没有结束时进行循环;
C语言仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
扩展资料:
C语言作为一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%~20%。因此,C语言可以编写系统软件。