Code Bye

讨教一个C语言问题

#include<stdio.h>
int main()
{
	int a,b;
	while(~scanf("%d%d",&a,&b))
	{
		printf("%d\n",a+b);
		}
	}
 

这段代码中

while(~scanf("%d%d",&a,&b))

请各位高手解释下,谢谢!

解决方案

10

scanf的返回值是 输入变量的个数。
假如输入了a和b那么就返回2.
~scanf(),就是没有得到正确输入
总体上就是,假如有正确输入,就退出循环,假如没有正确输入,就执行循环,一直取值。

10

关键你要弄懂scanf返回值的意思,表示的成功接收到的数目,假如失败,返回的是EOF,也就是0xFFFFFFFF,这个值取反以后就是0
参看:http://en.cppreference.com/w/c/io/fscanf

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明讨教一个C语言问题