分别用字符和ASCII码形式输出整数值65和66(C++)

有答案是这样写的#include < iostream >
using namespace std;
void main()
{
char a='A',b='B';
int ascii_1=53,ascii_2=54;//ASCII码中的5和6
cout<<"字符输出:"<<(int)a<<","<<(int)b<< endl;
cout<<"ASCII码输出:"<<(char)ascii_1<<(char)ascii_2<<",";
cout<<(char)ascii_1<<(char)ascii_2<< endl;
}输出结果是65,66 56,56 不知道为什么这样写,我想是以字符形式输出,应该是输出A,B, ASCII码形式输出不理解,知道的大侠希望不吝赐教。非常感谢!

'A' 的ASC II码值是65,而'B'是66,你讲char类型的a,b变量强制转换成了int,cout就“误以为”你输入了一个int变量让它显示,结果就将'A','B'的ASC码值输出在了屏幕上 即65,66 int类型的ascii_1和ascii_2也是一样的道理,你将他们转换成了char类型的变量,cout就以char类型的输出方式,将他们对应的ASC字符即'5','6'输出在了屏幕上了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-25
#include < iostream >
using namespace std;
void main()
{
char a='A',b='B';
int ascii_1=53,ascii_2=54;//ASCII码中的5和6
cout<<"字符输出:"<<a<<","<<b<< endl;
cout<<"ASCII码输出:"<<'\t';
cout<<(char)ascii_1<<'\t'<<(char)ascii_2<< endl;
}
//a,b本就是字符变量,不必强制转换成int。ASCII码你连续输出了两次,所以是56,56。其实代表的就是ascii_1=5,ascii_2=6.只不过输出时5和6之间没有空格。本回答被网友采纳
第2个回答  2013-04-09
// 是这样的吗?#include <iostream>using namespace std;void main() {
char a = 'A',b = 'B';
int ascii_1 = 53,ascii_2 = 54;//ASCII码中的5和6
cout<<"字符输出: "<<(int)a<<","<<(int)b<< endl;
cout<<"ASCII码输出: '"<<(char)ascii_1<<"','"<<(char)ascii_2<<"',";
cout<<(char)ascii_1<<","<<(char)ascii_2<< endl;
cout<<"字符输出: "<<(char)a<<","<<(char)b<< endl;
}
第3个回答  2013-04-09
int a=65,b=66;printf("%d:%c\n%d:%c",a,a,b,b);
第4个回答  2013-04-09
楼上说得没错,你要是想输出A、B用printf()函数就好了…
相似回答