当前位置: 首页 >> 科技 >
EOF的意义是什么你知道多少?在C++中的EOF该怎么使用理解?
来源:创视网     时间:2022-12-08 16:58:27

EOF的意义及用法(while(scanf("%d",&n) != EOF))

EOF,为End Of File的缩写,通常在文本的最后存在此字符表示资料结束。

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

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

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

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

但是在C++中

但是在C++中不存在这种用法,但相同作用的有while((cin >> a) != 0):

以前不理解在while里面用cin >> a;是什么意思,cin是C++的输入流对象,">>"是重载的运算符,cin>>的返回值是cin对象。用这个当条件的话,通过检测其流的状态来判断结束;

(1)若流是有效的,即流未遇到错误,那么检测成功;

(2)若遇到文件结束符,或遇到一个无效的输入时(例如本题输入的值不是一个整数),istream对象的状态会变为无效,条件就为假;读取失败的时候,就不能继续读取了,那么读取操作结束,while(cin>>a)就返回false,跳出循环!

C++中的while (cin>>n,n):

他的作用是:输入一个数,这数不为0时进入循环,为0时跳出循环。

推荐新闻 +
猜您喜欢 +