C语言中EOF是什么意思?

比如:while(scanf("%d%d",&a,&b)!=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–百度百科

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-18
楼上的"意思是你输入一个空行(直接回车)循环终止"是胡扯!

End Of File,在电脑的术语缩写通常为 EOF,在作业系统决定资料源无更多的资料可读取。资料源通常称为档案或串流。

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

参考资料:http://baike.baidu.com/view/56074.htm

本回答被提问者采纳
第2个回答  推荐于2017-09-20

    EOF是end of file的缩写,表示"文字流"(stream)的结尾。这里的"文字流",可以是文件(file),也可以是标准输入(stdin)。

    EOF不是特殊字符,而是一个定义在头文件stdio.h的常量,一般等于-1。

    #define EOF (-1)

    除了表示文件结尾,EOF还可以表示标准输入的结尾。但是,标准输入与文件不一样,无法事先知道输入的长度,必须手动输入一个字符,表示到达EOF。

第3个回答  2008-06-20
while(scanf("%d%d",&a,&b)!=EOF)

意思是你输入一个空行(直接回车)循环终止
第4个回答  2020-02-25
EOF是End
Of
File的意思,在C语言中定义的一个宏,用作文件结束标志。
该宏定义在stdio.h中,从数值角度看,就是-1
#define
EOF
(-1)
在Linux系统之中,EOF根本不是一个字符,而是当系统读取到文件结尾,所返回的一个信号值(也就是-1)。
一般C在读取数据时,都是按流模式进行数据读操作,这里的流可以是文件,也可以是标准输入。即:EOF可以表示文件结尾,还可以表示标准输入的结尾。
但是,标准输入与文件不一样,无法事先知道输入的长度,必须手动输入一个字符,表示到达EOF。
1.
  Linux中,在新的一行的开头,按下Ctrl-D,就代表EOF
2.
  Windows中,在新的一行的开头,按下Ctrl-Z,就表示EOF。