这是我在作作业遇到的一个我问题,这个语句的作用可以一直提取输入,直到没有输入就跳出循环
1.弄清楚这个语句的作用首先要从scanf()这个函数入手:
scanf()是一个返回值为int型的函数,如scanf("%d %d", &M, &N);当能输入一个数字储存在M中时,函数返回1,当成功输入两个数字时函数返回2;但是,当没有输入时返回的是-1而不是0.
2.为了让循环结束,我们就得让-1变为0
我们知道数字在计算机储存是二进制表示的,-1就是所有二进制都为1,0就是所有二进制位都为0,~对-1进行取反就是二进制位全部都为0(至于为什么-1是二进制位全部为1,这是以为负数在计算机是以补码的形式储存)
最后提一下EOF这个计算机术语:End Of File是文件结束的标志,其值为-1.