要求输入一个字符,输出它的ASCII码int main(){int b;scanf("%c",&b);printf("%c %d",b,b);return 0;}
前面定义b为int,但scanf里输入的是%c,为啥最终还能成功的输出字符的ASCII码?是因为scanf里用的是%C,然后电脑从键盘录入的时候自动把输入的东西录成字符型了?并没有受到前面的那个int影响?
新人提个c语言问题(手机有字数限制,所以代码比较难看。。。前面的部分就省了)
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
7条回答
- renlong0829 2016-03-13 16:57关注
所有可以通过键盘输入的符号,在内存中就是以对应的ASCII码值存储的。
变量b保存的就是输入字符的ASCII码值。
%c是表示这个输入/输出必须是可以显示的字符。换句话说就是在一个txt文件里面能够出现的字符。
你按F1,ctrl,shift,alt之类的按键,是不能得到ASCII码的。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥65 永磁型步进电机PID算法
- ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
- ¥88 找成都本地经验丰富懂小程序开发的技术大咖
- ¥15 如何处理复杂数据表格的除法运算
- ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
- ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
- ¥200 uniapp长期运行卡死问题解决
- ¥15 latex怎么处理论文引理引用参考文献
- ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
- ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?