为什么输不出字符呢?

wulingzhou 2010-10-19 07:27:07
#include"stdio.h"
main()
{char a=3,b=6,c;
c=a^b<<2;
printf("%d,%c\n",a,a);
printf("%d,%c\n",b,b);
printf("%d\n",c,);
}
为什么这个程序得到的答案不是:51,3
54,6
27
而是一些数字和图形呢??
...全文
105 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
小魔菇 2010-10-19
  • 打赏
  • 举报
回复
用%c输出
LZ把数值转化成对应的ASCII码了
luciferisnotsatan 2010-10-19
  • 打赏
  • 举报
回复
查下ascii码,看看 3 和 6 分别对应虾米
try325 2010-10-19
  • 打赏
  • 举报
回复
[Quote=引用楼主 wulingzhou 的回复:]
#include"stdio.h"
main()
{char a=3,b=6,c;
c=a^b<<2;
printf("%d,%c\n",a,a);
printf("%d,%c\n",b,b);
printf("%d\n",c,);
}
为什么这个程序得到的答案不是:51,3
54,6
……
[/Quote]
c的值为0xeb,%d输出为-21
dreamheart 2010-10-19
  • 打赏
  • 举报
回复
a b 值太小,输出的图形是ascII码中对应的符号,可以看看ASCII码表就明白了
try325 2010-10-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 libinfei8848 的回复:]

你初始化有问题
C/C++ code

char a=‘3’,b=‘6’,c;
c=a^b<<2;
[/Quote]
同意这个
libinfei8848 2010-10-19
  • 打赏
  • 举报
回复
你初始化有问题

char a=‘3’,b=‘6’,c;
c=a^b<<2;
windman521 2010-10-19
  • 打赏
  • 举报
回复
现实和理想总是有差距的,
好好看看书上怎么说的%d, %c的意思。
jixingzhong 2010-10-19
  • 打赏
  • 举报
回复
把%c都改为%d就是你要的结果了

%c输出的是ascii对应的字符

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧