栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c语言scanf

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c语言scanf

#include
int main()
{
    int a,b;
    while(~scanf("%d%d", &a, &b))printf("%dn",a+b);
    return 0;
}

scanf的返回值有0 1 2,3,4,5等到正整数 表示 对应的%d有几个 并且能正常取值的个数
windows系统按下ctrol z表示退出输入流 这时返回值是-1

在计算机系统中保存的数据是以二进制数据的补码表示 也叫二补码

正数的补码就是原码 例如1 scanf函数应该是int scanf() 也就是scanf的返回值是4个字节32位bit
1对应 00000000000…(30ge0)1 第一个0表示正负符号0是正 1是负

负数的补码就是原码取反再加1
-1 对应0000000…1取反11111111111…0 再加1就是变成11111111…11
所以while(~scanf("%d%d", &a, &b) 只有在运行文件上同时按下ctrol 和z时退出输入流 ~scanf("%d%d", &a, &b)这个值就是0其他情况都是有值的即时是0 二进制数据00000000…0,它的反码1111111111111…11还是为真
最大情况也是01111111111…1它的反码也是1000000虽然是负数 但是业为真

~这个符号表示数据取反

总结;while(~scanf("%d%d", &a, &b))这段代码就是为了在你取消当前输入的情况下退出当前输入流

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/512368.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号