开始做ACM了

while(scanf("%d%d",&a,&b)!=EOF)

 

 

while(scanf("%d\n",&n)!=-1)while(scanf("%d\n",&n)!=EOF)

while(~scanf("%d\n",&n))




scanf的返回值由后面的参数决定

scanf("%d%d", &a, &b);

如果a和b都被成功读入,那么scanf的返回值就是2

如果只有a被成功读入,返回值为1

如果a和b都未被成功读入,返回值为0

如果遇到错误或遇到end of file,返回值为EOF。

且返回值为int型.

验证:

        sign=scanf("%d %d",&a,&b); 
        printf("%d %d\n",a,b); 
        printf("%d\n",sign);


但是输入“a X”的时候 输出的sign为0

什么时候输出EOF? 在stdio.h中 宏定义为-1

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

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


 当时这个程序就是这么写的:

while(scanf("%d",&n)!=EOF)

 {

   if(n==0)

  {

      break;

   }

 }

 

终于把那道题给A了... ... 

 

后来看别人的代码 又这么写了

while(scanf("%d",&n)&&n!=0)

 

后来

whlie(scanf("%d",&n)&&n)

 

再后来

while(scanf("%d",&n),n)

... ...

也许用C语言 用scanf函数 这么写是最简单的吧


========================================
while(scanf("%d",&n)!=EOF)也可以表示为while(~scanf("%d",&n));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值