c语言eof的用法 c语言eof的用法 c语言eof的用法 计算机术语,缩写通常为EOF(End Of File),在操作系统中表示资料 源无更多的资料可读取。资料源通常称为档案或串流。在C语言中,或更精确地 说成C标准函式库中表示文件结束符(end of file)。下面我们来看看c语言eof的用 法。 在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标 志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的 形式存放。我们知道,ASCII代码值的范围是0~255,不可能出现-1,因此可以用 EOF作为文件结束标志。 [html] view plain#includestdio.h #include stdlib.h int main(void) { int a,b; while(scanf(“%d %d“,a,b) != EOF) { printf("%d¥n",a+b); } return 0; } 在上面这段代码中,定义了两个整型的变量,通过在while循环中判 断输入的返回值是否为EOF(即-1)然后打印a+b的值。 之前我也只是听说过EOF这个名词,但是具体怎么用也不知道,经过 我的测试发现: 1. 输入1 2然后回车打印出3,这个好理解,scanf接收到两个整型数据然后回车(这时候scanf的返回值是2,scanf()函数执行成功时的返回值是成功读取的 变量数,也就是说,你这个scanf()函数有几个变量,如果scanf()函数全部正常读取, 它就返回几。) 2. 输入1然后回车,它会让你继续输入,在这期间不论你空格键,回车 键,TAB键只要是你没输入一个非空白符它就会让你无限输入。(空白字符会使 scanf()函数在读操作中略去输入中的一个或多个空白字符,空白符可以是 space,tab,enter等,直到第一个非空白符出现为止。scanf()函数接收输入数据时, 遇以下情况结束一个数据的输入:(不是结束该scanf函数,scanf函数仅在每一个 数据域均有数据,并按回车后结束)。① 遇空格、“回车”、“跳格”键。②遇非法 输入。 3. 输入1 2 3 4 5 6 7 8,然后回车,它会打印出3 7 11 15,这个我自己理 解是当你按下回车时scanf结束,但是接收的数据有4组,它会先取出两个然后打 印之和,然后依次。。。。打印(理解不对之处还望各位赐教。) 4. 输入,. ~等字符回车,会进入无限循环屏幕上打印无限的数字,这是 因为输入一个字符串时,由于scanf需要一个整型数据,可是当前输入缓冲中的数 据并不是一个整型的数据,那么scanf会直接退出,并返回0,表示读到0个数,同 时不会改为输入缓冲,会进入到下一轮的循环之中,在屏幕输出:上一次的计算 结果,这时由于输入缓冲中还有数据,scanf不会阻塞,而是直接返回,可是发现 缓冲中的数据不是所要的数据,这样返回0.....使得循环一直运行下去。要是想解 决问题可以在循环语句中加上这句话:fflush(stdin);这样就不会无限打印数字了。 至于想让循环结束,在windows下输入ctrl+Z(即EOF)然后回车就可以 了。好了,我得研究结束了,写出来大家共同理解,希望文中有错误的地方大家 可以指点一二。 本文来源:https://www.wddqw.com/doc/e245bb4626c52cc58bd63186bceb19e8b8f6ec36.html