A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

如题:int类型数字0~9能不能用char输出?例如:(int)5——》(char)5?能不能这样?有没有什么办法?
新手求答案!

8 个回复

倒序浏览
你试下不就可以了吗
回复 使用道具 举报
你可以给一个char型变量赋值int型,但是是无法以char型打印的,只能以printf("%d")的形式打印,原因是printf函数在缓冲区中只会查找与格式控制字符串相符的对象,如果以%c查找,虽然在缓存区中有int型存在,但是其会被跳过,打印值为空
回复 使用道具 举报
可以,但需要类型转换。而且,用char类型输出后,5就不是int类型了,而是char类型,由原来的5变成了'5'
回复 使用道具 举报
65006636 发表于 2015-8-12 11:17
你可以给一个char型变量赋值int型,但是是无法以char型打印的,只能以printf("%d")的形式打印,原因是print ...

如果说你打印一个数的值,这个数可能是十进制也可能是八进制或者二进制、十六进制,怎么打印?十六进制中有“A,B,C,D,E,F“ 用%d的格式和%c的格式都没有办法打印吧!?
回复 使用道具 举报
408205555 发表于 2015-8-12 11:20
可以,但需要类型转换。而且,用char类型输出后,5就不是int类型了,而是char类型,由原来的5变成了'5' ...

怎么转?
回复 使用道具 举报
wxh794708907 发表于 2015-8-12 10:15
你试下不就可以了吗

怎么试啊?
回复 使用道具 举报
郭来印 发表于 2015-8-12 13:19
如果说你打印一个数的值,这个数可能是十进制也可能是八进制或者二进制、十六进制,怎么打印?十六进制中 ...

你之前的问题只提到int,所以是以%d打印,如果是16进制就只能以%x打印,还有八进制二进制都是一个道理,强制转换可以把int等一些类型的变量赋给char型变量,然后以这个char变量打印,但是由printf函数输出依然是其本来的int等等型别,而不是char。
回复 使用道具 举报
郭来印 发表于 2015-8-12 13:19
如果说你打印一个数的值,这个数可能是十进制也可能是八进制或者二进制、十六进制,怎么打印?十六进制中 ...

你之前的问题只提到int,所以是以%d打印,如果是16进制就只能以%x打印,还有八进制二进制都是一个道理,强制转换可以把int等一些类型的变量赋给char型变量,然后以这个char变量打印,但是由printf函数输出依然是其本来的int等等型别,而不是char。这个问题的答案就是——严格意义上讲是不能以char型输出int的,char占1个字节,而int是4个,这就是本质的区别,就算打印出来了012345这些了,打印出来的还是int型,或者float或者几进制,都是一个道理,希望可以帮到你。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马