问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

为什么~scanf()表示没有正确输入呢?

发布网友 发布时间:2023-12-22 11:15

我来回答

4个回答

热心网友 时间:2024-01-17 21:24

调用scanf这个函数的返回值是成功读取的数据个数。
在你这段程序里,如果正确输入了,也就是成功读取了一个数据,scanf的返回值为1;如果没有正确输入,那成功读取的数据个数就是0,也就是scanf的返回值为0.
~的意思是把数据的各个二进制位反转。在C语言里不等于0就表示真。如果scanf返回值为0,那~scanf(...)就是~0,是一个二进制位全部为1的数,在C里当然表示真;如果scanf返回值为1,那~scanf(...)就是~1,是一个只有最后一个二进制位为0其余二进制位全部为1的数,在C里同样表示真。不论输入正确与否都为真,循环都会继续,因此~scanf(...)不能用于表示没有正确输入。
只有在遇到文件结束或者输入(Ctrl+D或者Ctrl+Z)时,scanf返回EOF,是个所有二进制位都为1的数,这时~scanf(...)就是~EOF,是一个所有二进制位都为0的数,也就是0,表示假,这时候循环才会结束。
所以,~scanf(...)是表示没有遇到文件结束或者输入(Ctrl+D或者Ctrl+Z),当然这时候自然也不会有正确输入。

热心网友 时间:2024-01-17 21:25

上面回答问题的人连代码都么读懂么,就敢给别人回答。

热心网友 时间:2024-01-17 21:25

~ 是取反码 !是 逻辑取反

热心网友 时间:2024-01-17 21:26

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

汗~~。

估计你是想取反是吧?取反是用!,不是~。
!是逻辑取反
~是二进制求反。追问;这个语句有什么作用?

追答scanf("%d",&a)是读入整数
如果你输入的是非数字,那么结果返回0,~取反结果是-1;
如果你输入的是数字,返回结果1,~取反结果是-2.

所以while循环里结果要嘛是-1,要嘛是-2。那么while里面的条件就是永真。(0才表示假)
所以这个代码逻辑判断没有任何意义。

!取逻辑反才是正确的。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 楼梯的水泥台阶上可以铺地板革吗 手机腾讯会议共享屏幕播放视频没声 腾讯会议共享屏幕没声音怎么办 东莞市吉兴五金模具有限公司怎么样 我家的仓鼠嘴巴两边好像肿起来了,很大,是什么问题,而且还看见它把之前... 创游世界怎么做按钮 怎么把微信好友转移到另一个? 现在51相册也不能外链接了,请问一下大家知道哪有免费的放图片的,而且支... 求美剧 <实习医生格蕾> 人人影视版本的第二季第三季第四季 400多M一... 超人正义联盟中非正义联盟是哪些角色?介绍45 为什么宽带总是掉线,Link灯频繁闪烁,怎么回事啊? 花之秀睡衣是品牌吗 创游世界怎么做方向键 家用制氧机和家用呼吸机都有什么功能和效果?4 一个手机号注册的两个 其中一个微信忘记密码怎么找回? 吴佩孚在第二次直奉战争中从山海关南跳后,他已经成光混司令?为...15 wxid开头的怎么加好友呢? ...黄灯的情况下继续开过停止线,到了路中间黄灯变成红灯。 是闯红灯吗... 什么昆虫住别人的窝? 家用呼吸机用时没有氧气怎么办,4 如何评价吴佩孚这个历史人物14 正义联盟怎么没有超人 正义联盟的成员都有哪些 中国机械工业第五建设有限公司怎么样啊?待遇什么之类的?求告知啊! 全球公爵是什么卡,有什么用 白玉菇的吃法大全 过期的珍珠膏和防晒霜还能不能用 五年级关于春的手抄报图片字放大的6 含情脉脉桃花眼的下联 微信加别人的时候,出现对方通过搜索添加是怎么回事? 五香豆腐的做法和配方 怎么样才可以用手机号申请多个呢? 吴佩孚简介6 未满足一年可以强制改吗? 梦幻西游偷袭套比高级偷袭套多100的伤害,宝宝带哪个套子打的血多_百度... 未满一年可以强制改吗 当到路口时,是黄灯,车身一半过了停止线,灯变红了,我还是开了过去,算闯... 如图(1),已知在三角形ABC中,BD,CD分别是∠B,∠C的角平分线,求∠BDC与... 听说汕头的内衣很不错,具体的内衣批发在哪里? 窄距俯卧撑锻炼什么455 我是淘宝开店铺的,想找一个免费的支持外链的图片空间 一年内第二次修改技巧 苛求别人大度是什么意思 创游世界怎么做按键加速