c语言feof
㈠ 不太理解c语言中的!feof(fp)
feof是c标准函数,原型:int feof(FILE *stream)是feof函数原型,文件结束返回非0值,否则返回0。fp对应上面的文件流,!是bool取反的意思,!feof(fp)组合起来就是文件尚未结束的逻辑。
㈡ C语言中feof的用法疑问
feof
只是“事后”检查,它不会改变文件流的状态,甚至根本不会去读文件,它只会检查相应的
FILE
结构体的
eof
标记。某种意义上,
feof
就是面向对象中的
getter
方法。
只有别的函数从文件里面读东西然后因为碰到错误于是需要的东西没有读出来,才会把
对应的
FILE
结构体
的
eof
标记设为真。
㈢ c语言中feof是什么意思
feof是一个c语言函数,既可用以判断二进制文件又可用以判断文本文件。feof(fp)有两个返回值:如果遇到文件结束,函数feof(fp)的值为1,否则为0。
EOF是文件结束标志的文件。在文本文件中,数据是以字符的ASCⅡ代码值的形式存放,ASCⅡ代码的范围是0到255,不可能出现-1,因此可以用EOF作为文件结束标志。
当把数据以二进制形式存放到文件中时,就会有-1值的出现,因此不能采用EOF作为二进制文件的结束标志。为解决这一个问题,ASCI C提供一个feof函数,用来判断文件是否结束。
(3)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);
}
㈣ c语言 while (!feof(fp))是什么意思啊谢谢
feof()是文件结束检测函数,如果没有结束,返回值是0,结束了是1;
由于feof(fp)返回0才是没有结束,所以通常写成while(!feof(fp)),这样使得没有结束时进行循环;
C语言仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
(4)c语言feof扩展阅读:
C语言作为一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%~20%。因此,C语言可以编写系统软件。
㈤ feof(fp)是什么意思每一个字母如何解释
feof是C语言标准库函数,其原型在stdio.h中,其功能是检测流上的文件结束符,如果文件结束,则返回非0值,否则返回0(即,文件结束:返回非0值,文件未结束,返回0值),文件结束符只能被clearerr()清除。(这里的检测流上的文件结束符就相当于声卡检测电流信号的一个过程)
int feof(FILE *stream);
参数
流 :FILE结构的指针
注意:feof判断文件结束是通过读取函数fread/fscanf等返回错误来识别的,故而判断文件是否结束应该是在读取函数之后进行判断。比如,在while循环读取一个文件时,如果是在读取函数之前进行判断,则如果文件最后一行是空白行,可能会造成内存错误。
(5)c语言feof扩展阅读
相关函数
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
㈥ c语言编程问题。feof()函数的作用。
答案错了
这个题目应该选C.
你的说法: 函数feof(fp)的作用是判断文件fp是否结束. 若是,返回非零值,否则,返回0。
这句是完全正确的.
㈦ C语言中的feof怎么用
feof(文件流指针)
,不到结尾返回0,否则返回1
就一个判断状态的函数
file
*fp=fopen。。。。
打开成功才能调用该函数
这个状态检测是当文件读取函数发生读失败才会出现
㈧ 求C语言中feof的用法
feof(文件流指针) ,不到结尾返回0,否则返回1 就一个判断状态的函数 FILE *fp=fopen。。。。 打开成功才能调用该函数 这个状态检测是当文件读取函数发生读失败才会出现
㈨ C语言中的feof函数
即使文件是空的,也要再读一次,feof函数值才会变为真。
因为只有读出所有的数据之后,再读一次,函数feof(fp)的返回值才为真。(请见《C语言好程序设计—从入门到进阶》,人民邮电出版社,2011。)
示例:
#include<stdio.h>
#include<stdlib.h>
main()
{
FILE *fp;
int a;
if((fp=fopen("c:\\number.txt","r"))==NULL)
{
printf("文件打开失败!\n");
exit(0);
}
fscanf(fp,"%d",&a);
while(!feof(fp)) /*等价于while(feof(fp)==0)*/
{
printf("%d ",a);
fscanf(fp,"%d",&a);
}
fclose(fp);
}