c语言while end用法,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#include

#include

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)然后回车就可以了。好了,我得研究结束了,写出来大家共同理解,希望文中有错误的地方大家可以指点一二。

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值