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++的语句? 展开
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++的语句? 展开
4个回答
展开全部
追问
用cout语句不能完成吗?一定要用函数?用函数的话我可以重载cout吧。
追答
不知道你是否自己在VC上试过,printf("%c",a[0][1]);这句是没法实现将一个整数以字符串格式输出的,这个比较基础你翻翻书就知道了。cout<<a+48,涉及到运算符优先级,运算符"+"比运算符“<<”的优先级高,所以会先计算a+48,返回的结果再用cout<<输出。至于char(a),这是一个变量类型转换操作,和你理解的完全不同。这些都比较基础,随便一本教材前几章就都覆盖到了,建议你先多看看书再说。
展开全部
可以将数字保存到字符数组,数字与其对应的字符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);
就转换过来了
int a=123;
str.format("%c",a);
就转换过来了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
cout<<int(a[0][1])<<endl;
cout<<char(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;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询