如何将整数分配给char类型的变量

时间:2018-08-13 15:21:23

标签: c++

我不在这里做某事。

这是我的代码:

#include<iostream>

using namespace std;

int main()
{
  char a='2Z';
  cout<<a<<endl;
  return 0;
}

但是仅打印Z,而不打印2。怎么也可以打印整数?

2 个答案:

答案 0 :(得分:1)

大概想要std::string a = "2Z";。请注意双引号字符和类型的更改。

'2Z'是一个多字符常量,具有实现定义的值,但类型为int

最有可能是256 * '2' + 'Z'。可能太大了,无法容纳char,如果平台上的charsigned,那么将再次定义缩小的转换。您只会得到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;
}