我不在这里做某事。
这是我的代码:
#include<iostream>
using namespace std;
int main()
{
char a='2Z';
cout<<a<<endl;
return 0;
}
但是仅打印Z
,而不打印2
。怎么也可以打印整数?
答案 0 :(得分:1)
您大概想要std::string a = "2Z";
。请注意双引号字符和类型的更改。
'2Z'
是一个多字符常量,具有实现定义的值,但类型为int
。
最有可能是256 * '2' + 'Z'
。可能太大了,无法容纳char
,如果平台上的char
是signed
,那么将再次定义缩小的转换。您只会得到Z
,因为您的实现似乎正在计算(256 * '2' + 'Z') % 256
,即'Z'
。
换句话说,最好避免使用多字符常量,也不要将转换范围缩小到char
类型。
答案 1 :(得分:0)
那里有两个问题,首先是单引号,其次要在一个字符中保留一个字符串,解决方法:
#include<iostream>
using namespace std;
int main()
{
const char *a="2Z";
char str[] = "234";
std::string aString = "4444ZZZZZ"; // Using STD namespace
cout<<a<<endl;
cout<<str<<endl;
cout<<aString<<endl;
return 0;
}