c++中,如何将输入的数字,以字符的形式输出?

比如:a[0][1]=123;C中能有:printf("%d",a[0][1])以数字形式输出一百二十三,printf("%c",a[0][1])以字符形式输出123,请... 比如:
a[0][1]=123;
C中能有:printf("%d",a[0][1])以数字形式输出一百二十三,
printf("%c",a[0][1])以字符形式输出123,
请问c++中,想分别以数字形式,和以字符形式输出123,要怎么做?能做到吗?
(ps:本人刚学c++,没学过c)
或者换种问法:
printf("%d",a[0][1]);

printf("%c",a[0][1]);

这两个语句怎么样换成c++的语句?
展开
 我来答
marsding2006
推荐于2017-10-13 · TA获得超过4627个赞
知道大有可为答主
回答量:3090
采纳率:40%
帮助的人:1263万
展开全部
简单点用itoa函数即可,调用这个函数需要include <stdlib.h>头文件。这个函数就是将一个整数转换为字符串。对应还有一个函数叫atoi,就是字符串转整数,都是常有到的两个函数。若想自己写就直接百度吧,这种整数转字符串的算法一般学习语言的人都会写到,网上一堆堆的有。
追问
用cout语句不能完成吗?一定要用函数?用函数的话我可以重载cout吧。
追答
不知道你是否自己在VC上试过,printf("%c",a[0][1]);这句是没法实现将一个整数以字符串格式输出的,这个比较基础你翻翻书就知道了。cout<<a+48,涉及到运算符优先级,运算符"+"比运算符“<<”的优先级高,所以会先计算a+48,返回的结果再用cout<<输出。至于char(a),这是一个变量类型转换操作,和你理解的完全不同。这些都比较基础,随便一本教材前几章就都覆盖到了,建议你先多看看书再说。
hujunand123
2013-03-23 · 贡献了超过186个回答
知道答主
回答量:186
采纳率:0%
帮助的人:14.2万
展开全部
可以将数字保存到字符数组,数字与其对应的字符ascii码相差48,也就是说字符'0'的ascii码是48,每次"数字+48"赋给字符变量,输出的便是数字对应的字符.将字符以数字的形式输出,刚好相反.
追问
请问:
int a=123;
cout<<a<<endl;是输出123.
但是cout<<a+48; 是输出171的。是哪里错了?(我要输出的是123)
追答
首先个位是这样转,a%10+48赋给一个字符变量,输出的就是字符'3',其它位同理,不可以将一个多位整数直接转换成字符串的,只能一位一位的拆开转换,或者直接用库函数string str;sprintf(str,"%d",a);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-03-23
展开全部
Cstring str
int a=123;
str.format("%c",a);
就转换过来了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
街角1偶遇
2013-03-23
知道答主
回答量:20
采纳率:0%
帮助的人:7.6万
展开全部
cout<<int(a[0][1])<<endl;
cout<<char(a[0][1])<<endl;
希望可以帮到你
追问
你好,
int a=123;
cout<<char(a)<<endl;输出的是 {
我哪里错了吗?(我要输出的是字符形式的123)
追答
你要输出 123就用cout<<a<<endl;就行
如果你要输出ASCII代码123对应的 { 就用cout<<char(a)<<endl;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式