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

这段代码什么意思
2025-05-15 18:38:12
推荐回答(3个)
回答1:

while (~scanf("%d%d",&m,&n))
看起来是C语言的
ACM中比较常见,其他地方没见过这么写的
功能是循环从输入流读取m和n 直到遇到EOF为止
等同于while (scanf("%d%d",&m,&n)!=EOF)

回答2:

scanf函数是有返回值的,输入成功的话返回值为你输入的个数,即为2,输入失败返回0,因为你输入了m和n两个值,然后再对2按位取反看是不是0.但是我觉得应该是while (!scanf("%d%d", &m, &n))吧。

回答3:

从键盘获得m、n两值,如果相加不为零,即真,则执行循环。相加为零的情况包括从键盘获取不到两值,此句的意思可简单理解为如果mn获值成功即执行循环。