关于scanf的若干疑问?
1.如图为啥会出现这样的情况(我觉得不是因为局部变量未初始化值随机吧,我试了很多次a每次的值就是16,其他值单独试的话是0);此外布局函数(main)int函数的默认值到...
1.如图为啥会出现这样的情况(我觉得不是因为局部变量未初始化值随机吧,我试了很多次a每次的值就是16,其他值单独试的话是0);此外布局函数(main)int函数的默认值到底是不是为0(以现在的c标准),我试过很多次都是为0,网上说是随机值。int a,b;char n;scanf("%d%d",&a,&b);scanf("%c",&n);假设我是这样输入的:3 4 \n(空白部分为)2.当匹配%d的时候空白字符会被忽略,那么这些被忽略的空白字符还存在缓冲中吗?3.每次scanf函数都是从缓冲区的头部开始读吗,还是在上一次scanf的基础上继续向后读?如果是从头开始而且空白字符还保留的话,n的值不就是空格,而实际情况是\n;4.当scanf遇到类型不匹配时的处理机制是怎么样的(我试过比如%d输入的是字符字符串这些的值是0)5.输入缓冲区没有读取的情况下会不会定时刷新还是持续到程序结束,还是关机?
展开
1个回答
展开全部
1 没有初始化的值是不确定的。试几次也没有用
什么叫布局函数(main)int函数的默认值。。。。哪有这样的说法。。
2.当匹配%d的时候空白字符会被忽略,那么这些被忽略的空白字符还存在缓冲中吗?
---
如果空白符后面读取到了整形数据,那么这些空白字符就不在缓存区了,反之则一直在。
3
每次scanf函数都是从缓冲区的头部开始读,也是在上一次scanf的基础上,因为:
scanf读走的字符就不在缓存区内了。
4 类型不匹配就不读,缓冲区不变。printf看到的值是读之前变量的值。未初始化的变量存有不确定的值。
5.输入缓冲区没有读取的情况持续到程序结束
什么叫布局函数(main)int函数的默认值。。。。哪有这样的说法。。
2.当匹配%d的时候空白字符会被忽略,那么这些被忽略的空白字符还存在缓冲中吗?
---
如果空白符后面读取到了整形数据,那么这些空白字符就不在缓存区了,反之则一直在。
3
每次scanf函数都是从缓冲区的头部开始读,也是在上一次scanf的基础上,因为:
scanf读走的字符就不在缓存区内了。
4 类型不匹配就不读,缓冲区不变。printf看到的值是读之前变量的值。未初始化的变量存有不确定的值。
5.输入缓冲区没有读取的情况持续到程序结束
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
亚远景信息科技
2024-12-11 广告
2024-12-11 广告
上海亚远景信息科技有限公司是国内汽车行业咨询及评估领军机构之一,深耕于ASPICE、敏捷SPICE、ISO26262功能安全、ISO21434车辆网络安全领域,拥有20年以上的行业经验,专精于培训、咨询及评估服务,广受全球车厂及供应商赞誉,...
点击进入详情页
本回答由亚远景信息科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询