首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    EOF是什么?

    = EOF) {     putchar (c);   } 很自然地,我就以为,每个文件的结尾处,有一个叫做EOF的特殊字符,读取到这个字符,操作系统就认为文件结束了。...但是,后来我发现,EOF不是特殊字符,而是一个定义在头文件stdio.h的常量,一般等于-1。   #define EOF (-1) 于是,我就困惑了。...如果EOF是一个特殊字符,那么假定每个文本文件的结尾都有一个EOF(也就是-1),还是可以做到的,因为文本对应的ASCII码都是正值,不可能有负值。但是,二进制文件怎么办呢?...= EOF) {     do something   } 这样写有一个问题。fgetc()不仅是遇到文件结尾时返回EOF,而且当发生错误时,也会返回EOF。...= EOF) {     putchar(c);   } 但是,标准输入与文件不一样,无法事先知道输入的长度,必须手动输入一个字符,表示到达EOF

    2.4K30

    探秘BOF 和EOF

    BOF和EOF是Recordset(记录集)对象的一对返回值类型为布尔型的属性。...then mrc.MoveFirst End if Call viewData 'viewData为一个在窗体上显示当前记录的函数 End sub 错误的代码...为了理解更明了一些,画了一张图(如右图)来解释EOF和BOF,假设记录集中一共有n条记录,当当前记录指针指向第一条记录之前时,BOF属性值为True;当前记录指向中间1~n任意一条记录时,BOF和EOF...当然,EOF和BOF合起来也可以实现一些功能,比如:        当判断语句BOF And EOF时,如果结果为True即它们倆的返回值都为True时则表明当前记录集中没有任何记录;而当记录中只有一个记录并处于该记录位置时...,BOF和EOF的返回值都为False。

    1K30

    EOF是不是字符

    什么是 EOF? 百度百科上这样解释:EOF是一个计算机术语,为End Of File的缩写,在操作系统中表示资料源无更多的资料可读取。资料源通常称为档案或串流。...在这个解释中,认为EOF是表示文件结束的字符——这就是本文要重点讨论的,EOF是不是一个字符? ? 在Unix、Linux系统上,用C语言读写文件,经常会遇到EOF。...之所以很多人认为EOF是一个字符串,可能是因为在C语言的程序中,会用getchar()和getc()检查是否遇到了EOF。...下面用一下段C语言程序,来看看EOF。在ANSI C中,EOF在标准库中,它的数字编码值一般是-1。...所以,现在可以断言:EOF不是一个字符。 再换一个角度考察。 如果EOF是字符,你就能在文件末尾“看”到它。

    4.5K20

    EOF 与 BOF 之分

    EOF(end of file)——记录当前位置位于记录集集中最后一个记录之后 BOF(before of file)——记录当前位置位于记录集中第一个记录之前     用rs来表示这个记录集,假如记录集里面有...1、2、3、4个数据,BOF表示rs当前的指针是指在记录集的前面,指向的编号是(-1),当指针指向5时,就会发生EOF的情况。    ...当记录集为空时,就会同时发生BOF和EOF的情况,就是说rs的指针即在上界之外也在下界之外,这样rs的指针无论是指到什么地方都是同时具有bof和eof的属性。    ...在我们敲学生信息管理系统的时候,在语句中经常出现EOF和BOF的使用       1、If mrc.EOF Then——当前指针在最后一条记录之后       2、If Not mrc.EOF Then...And Not mrc.BOF ) Then——指针位于记录集之中,一定有记录       2、If mrc.EOF And mrc.BOF Then ——指针未在记录集之中,没有记录,说明数据库为空

    1.3K20

    【答疑解惑】getchar()与EOF

    = EOF){ putchar(c); } 这一段代码是The C Programming Language(Second Edition)中一个经典的代码,很多初学者在看到这段代码时会有不少疑问,这里做一个简单的总结...当调用getchar函数读取输入时,只有当输入字符为换行符'/n'或文件结束符EOF时,getchar才会停止执行。...这句话的意思比如我们运行上面那段代码时,我们输入的是回车键或者EOF(linux下是按下Ctrl+D,windows下是按下Ctrl+Z)是,getchar才结束,而不是像它的名字一样,输入一个字符getchar...getchar的返回值 getchar()的返回值一般情况下是非负 值,但也可能是负值,即返回EOF。这个EOF在函数库里一般定义为-1。...正确的定义方法如下(K&R C中特别提到了这个问题): int c; c = getchar(); 二、EOF总结 在这个实例中,EOF并不是在任何情况下都作为文件结束符的。

    1.2K90

    文件结束符EOF

    >> 关于文件结束符EOF EOF 是 End Of File 的缩写。在C语言中,它是在标准库中定义的一个宏。人们经常误认为 EOF 是从文件中读取的一个字符(牢记)。...EOF 也不是只表示读文件到了结尾这一状态(这种状态可以用 feof() 来检测),它还能表示 I/O 操作中的读、写错误(通常可以用 ferror() 来检测)以及其它一些关联操作的错误状态。...但这个观点实际上是错误的,在文 件所包含的数据中,并没有什么文件结束符. 对getc 而言, 如果不能从文件中读取, 则返回一个整数 -1,这就是所谓的EOF....因为可能是读取错误!...(即即使读取错误可能也被认为文件结束,所以就需要用feof 和 ferror来判断是不是真的文件结束了)当用getchar(c)时,即使c定义成字符型,也可以结束,主要是c与-1比较时,c也会从char

    4.5K10

    getchar(),putchar(),EOF的详细解释

    它接受一个整数参数c,代表要输出的字符的 ASCII 值 该函数返回输出的字符,如果发生错误则返回EOF(通常为默认值 -1) int ch; while ((ch = getchar())!...,字符值在表达式中会自动转换为对应的 ASCII 值再进行操作 ​ 该函数返回输出的字符,如果发生错误则返回EOF(通常为 -1)。...原型为 int getchar(void);它不需要参数,返回对应输出的ASCII 值 如果到达文件末尾或发生错误,它会返回EOF(通常为 -1)。...如果输入流出现错误,某些函数可能也会返回 EOF(如scanf), 这时候需要通过使用 feof 和 ferror 函数来分别检查文件结束标志和错误标志。...如果输入流出现错误,某些函数可能也会返回 EOF(如scanf), 这时候需要通过使用feof和ferror` 函数来分别检查文件结束标志和错误标志。

    4910
    领券