×

eof在c语言中表示什么 c

eof在c语言中表示什么(c语言中EOF是什么)

admin admin 发表于2022-09-05 14:44:16 浏览162 评论0

抢沙发发表评论

本文目录

c语言中EOF是什么


EOFEnd
Of
File缩写文件结尾Windows面按Ctrl+Z输入EOF输入EOF代表输入结束循环意思控制台获取字符检查字符否换行或者输入结束则结束循环

C语言 EOF是什么


这里的“文字流“,可以是文件(file),也可以是标准输入(stdin)。比如,下面这段代码就表示,如果不是文件结尾,就把文件的内容复制到屏幕上。 int c; while ((c = fgetc(fp)) != EOF) { putchar (c); }很自然地,我就以为,每个文件的结尾处,有一个叫做EOF的特殊字符,读取到这个字符,操作系统就认为文件结束了。但是,后来我发现,EOF不是特殊字符,而是一个定义在头文件stdio.h的常量,一般等于-1。 #define EOF (-1)于是,我就困惑了。如果EOF是一个特殊字符,那么假定每个文本文件的结尾都有一个EOF(也就是-1),还是可以做到的,因为文本对应的ASCII码都是正值,不可能有负值。但是,二进制文件怎么办呢?怎么处理文件内部包含的-1呢?这个问题让我想了很久,后来查了资料才知道,在Linux系统之中,EOF根本不是一个字符,而是当系统读取到文件结尾,所返回的一个信号值(也就是-1)。至于系统怎么知道文件的结尾,资料上说是通过比较文件的长度。所以,处理文件可以写成下面这样: int c; while ((c = fgetc(fp)) != EOF) { do something }这样写有一个问题。fgetc()不仅是遇到文件结尾时返回EOF,而且当发生错误时,也会返回EOF。因此,C语言又提供了feof()函数,用来保证确实是到了文件结尾。上面的代码feof()版本的写法就是: int c; while (!feof(fp)) { c = fgetc(fp); do something; }但是,这样写也有问题。fgetc()读取文件的最后一个字符以后,C语言的feof()函数依然返回0,表明没有到达文件结尾;只有当fgetc()向后再读取一个字符(即越过最后一个字符),feof()才会返回一个非零值,表示到达文件结尾。所以,按照上面这样写法,如果一个文件含有n个字符,那么while循环的内部操作会运行n+1次。所以,最保险的写法是像下面这样: int c = fgetc(fp); while (c != EOF) { do something; c = fgetc(fp); } if (feof(fp)) { printf(“\n End of file reached.“); } else { printf(“\n Something went wrong.“); }除了表示文件结尾,EOF还可以表示标准输入的结尾。 int c; while ((c = getchar()) != EOF) { putchar(c); }但是,标准输入与文件不一样,无法事先知道输入的长度,必须手动输入一个字符,表示到达EOF。Linux中,在新的一行的开头,按下Ctrl-D,就代表EOF(如果在一行的中间按下Ctrl-D,则表示输出“标准输入“的缓存区,所以这时必须按两次Ctrl-D);Windows中,Ctrl-Z表示EOF。(顺便提一句,Linux中按下Ctrl-Z,表示将该进程中断,在后台挂起,用fg命令可以重新切回到前台;按下Ctrl-C表示终止该进程。)那么,如果真的想输入Ctrl-D怎么办?这时必须先按下Ctrl-V,然后就可以输入Ctrl-D,系统就不会认为这是EOF信号。Ctrl-V表示按“字面含义“解读下一个输入,要是想按“字面含义“输入Ctrl-V,连续输入两次就行了。(完)

C语言EOF什么意思


EOF是在多种计算机语言中通用的保留字,意思为 End Of File,即文件末尾。
EOF在文件读取操作中较为常用,被用来判断是否已经读到了文件尾。如果已经读到文件尾了就表示该文件已经读完。
EOF 的值通常为 -1,但为了增强代码的可读性,一般不会把EOF写成 -1。
-eof在c语言中表示什么

C语言中EOF是什么意思啊具体怎么运用啊


eof定义在头文件stdio,h中,值是整形数-1。
eof
=
end
of
file,意思是文件结束,当读一个文件读到文件最后时,读文件的函数(比如函数fgetc(file
*fp))就会返回这个常量。
在c语言中,键盘也作为文件处理,键盘的流指针是stdin。比如常用函数scanf(),返回成功读入的数据个数,如果没有任何数据被成功读入,则返回eof。
-c

C语言中EOF是什么意思


eod 是end of file的缩写 。

你在用函数读入文件数据的时候,函数总会返回一个状态,是读取成功还是失败,那么这个状态怎么表示呢,所以就约定俗成定义一个标识符表示这个状态,就有了EOF。

scanf函数只有在第一个参数为NULL(空指针)的情况下,才可能返回EOF,否则,返回成功格式化并赋值的参数个数(》=0)。

所以,这个循环,将是一个死循环。

扩展资料:

EOF是一个计算机术语,为End Of File的缩写,在操作系统中表示资料源无更多的资料可读取。资料源通常称为档案或串流。通常在文本的最后存在此字符表示资料结束。

在C语言中,或更精确地说成C标准函数库中表示文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。

在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志。

参考资料:EOF–百度百科


c语言里面的EOF的用法及意义


EOF是end of file 的简写, 如读到文件末尾,则函数返回一个 EOF值,它是一个宏定义,一般值是-1。使用示例如下:

#include 《stdio.h》
int main()
{
char c;
while((c = getchar()) != EOF){
putchar(c);
}
return 0;
}

说明:在Windows上按CTRL+Z键,表示EOF。-eof在c语言中表示什么

注意:EOF虽然是文件结束符,但并不是在任何情况下输入Ctrl+D(Windows下Ctrl+Z)都能够实现文件结束的功能,只有在下列的条件下,才作为文件结束符。

(1)遇到getcahr函数执行时,要输入第一个字符时就直接输入Ctrl+D,就可以跳出getchar(),去执行程序的其他部分;
(2)在前面输入的字符为换行符时,接着输入Ctrl+D;
(3)在前面有字符输入且不为换行符时,要连着输入两次Ctrl+D,这时第二次输入的Ctrl+D起到文件结束符的功能。-c


C语言编程中的EOF是什么


在计算机术语缩写通常为 EOF,在操作系统决定资料源无更多的资料可读取。资料源通常称为档案或串流。 在 C语言,或更精确地说成 C标准函式库,档案存取或其它 I/O 功能可能传回等于象征符号值 (巨集) EOF 指示档案结束的情形发生。实际上 EOF 的值通常为 -1,但它依系统有所不同。巨集 EOF 会在编译原始码前展开实际值给预处理器。 C语言中,EOF常被作为文件结束的标志。还有很多文件处理函数处错误后的返回值也是EOF,因此常被用来判断调用一个函数是否成功。 例如: #include 《stdio.h》 int main() { int n; int array; while (scanf(“%d“,&n)!=EOF) { for (int i=0; i《n; i++) scanf(“%d“,array+i); for (int i=0; i《n; i++) printf (“%d “,array[i]); } return 0; }
-eof在c语言中表示什么

在c语言EOF代表什么


在计算机术语缩写通常为EOF(End Of File),在操作系统中表示资料源无更多的资料可读取。资料源通常称为档案或串流。   在C语言中,或更精确地说成C标准函式库中表示文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~255,不可能出现-1,因此可以用EOF作为文件结束标志。
详细请看这里
http://baike.baidu.com/view/56074.htm
-c

c语言中的EOF是什么意思


EOF是End Of File的意思,在C语言中定义的一个宏,用作文件结束标志。从数值角度看,就是-1。

从一个终端的输入从来不会真的“结束”(除非设备被断开),但把从终端输入的数据分区成多个“文件”却很有用,因此一个关键的序列被保留下来来指明输入结束。

在UNIX和AmigaDOS中,将击键翻译为EOF的过程是由终端的驱动程序完成的,因此应用程序无需将终端和其它输入文件区分开来。

Unix平台的驱动程序在行首传送一个传输结束字符(Control-D,ASCII编码为为04)来指明文件结束。

在AmigaDOS中,驱动程序传送一个Control-\来指明文件结束(而Control-D被用作中断字符)。要向输入流中插入一个真正的Control-D字符,用户需要把一个“引用”命令字符放在它的前面(通常是Control-V,表示下一个字符不作为控制字符,而是按照字面量使用)。-eof在c语言中表示什么

在微软的DOS和Windows(以及CP/M和许多DEC操作系统)中,读取数据时终端不会产生EOF。此时,应用程序知道数据源是一个终端(或者其它“字符设备”),并将一个已知的保留的字符或序列解释为文件结束的指明;最普遍地说,它是ASCII码中的替换字符(Control-Z,代码26)。-c

一些MS-DOS程序,包括部分微软MS-DOS的shell(COMMAND.COM)和操作系统功能程序(如EDLIN),将文本文档中的Control-Z视为有意义数据的结尾,并且/或者在写入文本文档时将Control-Z添加到文档末尾。这是由于两个原因:-eof在c语言中表示什么

1、向后兼容CP/M。CP/M的第1版与第2版的文件系统以128字节“块”的倍数记录文件长度,所以当有意义数据在一个“块”的中间结束时,习惯上用Control-Z字符来标记它,此后至块结尾的字节为未利用。而MS-DOS文件系统总会记录文件确切的字节长度,所以在MS-DOS中文件不再必需以Control-Z字符来标记结尾。-c

2、它使得应用程序在从终端和文本文档读取数据时得以使用相同的代码。

    概念:

    在C语言中,或更精确地说成C标准函数库中表示文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志。-eof在c语言中表示什么

    应用:

    档案存取或其它 I/O 功能可能传回等于象征符号值 (巨集) EOF 指示档案结束的情形发生。实际上 EOF 的值通常为 -1,但它依系统有所不同。巨集 EOF会在编译原始码前展开实际值给预处理器。

    C语言中,EOF常被作为文件结束的标志。还有很多文件处理函数处错误后的返回值也是EOF,因此常被用来判断调用一个函数是否成功。

    例如:

    在 UNIX中, EOF表示能从交互式 shell (终端) 送出 Ctrl+D (习惯性标准)。在微软的 DOS 与 Windows 中能送出 Ctrl+Z。在某些例子处理纯文字档案或从“字元设备“读入资料,微软MS-DOS的 shell 或系统程序会加入ASCIIControl-Z 字元到磁碟档案结束处 (尽管基本核心MSDOS.SYS档案写入呼叫从未附加 Control-Z)。这是向下相容于一些奇特的CP/M功能,从CP/M 档案系统只能就记录的档案长度分配多少 128 位元 “记录“。MS-DOS 档案系统从一开始就能精确的记录档案的位元长度。-c

    ASCII控制字符在字元串流是 out-of-band 不可列印字元。通常表可读的助忆码。

    在控制台要输入eof的话 按ALT+65535就可以了。

    与feof:

    C语言中,当把数据以二进制形式存放到文件中时,就会有-1值的出现,此时不能采用EOF作为二进制文件的结束标志。为解决这个问题,ANSI C提供一个feof函数,用来判断文件是否结束。如果遇到文件结束,函数feof(fp)的值为1,否则为0.feof函数既可用以判断二进制文件是否结束,也可以用以判断文本文件是否结束。 -eof在c语言中表示什么

    例如:编写程序,用于把一个文本文件(源文件)复制到另一个文件(目的文件)中。源文件名为file_a.dat,目的文件名为file_b.dat。程序如下:

    EOF 函数:

    返回一个数值(整数类型Integer),它包含布尔值Boolean值True,表明已经到达为Random(Open语句方法)或顺序Input (Open 语句方法)打开的文件的结尾。

    语法:

    EOF(filenumber)

    必要的filenumber参数是一个Integer,包含任何有效的文件号。

    说明:

    EOF (End Of File)

    使用EOF是为了避免因试图在文件结尾处进行输入而产生的错误。

    直到到达文件的结尾,EOF函数都返回False。对于为访问Random或Binary而打开的文件,直到最后一次执行的Get语句无法读出完整的记录时,EOF都返回False。


    EOF在c语言里面到底是什么意思


    EOF就是文件尾的意思,一般被编译器定义为-1
    倒不是说文件自己会自动生成一个EOF标志,而是你在用函数读入文件数据的时候,函数总会返回一个状态,是读取成功还是失败,那么这个状态怎么表示呢,所以就约定俗成定义一个标识符表示这个状态,就有了EOF,BOF等等
    -c