Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C+中的Char和int+;?_C++ - Fatal编程技术网

C++ C+中的Char和int+;?

C++ C+中的Char和int+;?,c++,C++,请告诉我问题出在哪里: int sum = 105; char a = sum; cout << a; // Prints : 'i' char b = '105'; cout << b; // Prints : '5' int和=105; 字符a=总和; 不能将字符设置为105。。。这是一个整数。将字符设置为105将其设置为i: 105恰好是i的ascii码,这就是为什么当您将a设置为105时它会打印i(这是有效的,但不是您想要的)它会打印i,因为您不会主动将int转

请告诉我问题出在哪里:

int sum = 105;
char a = sum;
cout << a;
// Prints : 'i'
char b = '105';
cout << b;
// Prints : '5'
int和=105;
字符a=总和;

不能将字符设置为105。。。这是一个整数。将字符设置为105将其设置为i:


105恰好是
i
的ascii码,这就是为什么当您将a设置为105时它会打印
i
(这是有效的,但不是您想要的)

它会打印i,因为您不会主动将int转换为char。 整数105和字符都由位“0110101”表示


例如,include string library可使用函数将整数转换为字符串。

表示字母“i”的ascii代码为105,

它打印5,因为字符只能包含1个值作为字符。 因此,当您这样做时:

char b = '105';
最终结果将是
'5'

由于您将其设置为字符而不是int,因此它会显示
char'5'
,其值为
53


正如其他人所说,
105
是ascii
i

的值,将其设置为'105'可能不是OP想要的:“我正在尝试将单词'five'转换为'5',因此如果我键入'five',输出应为'5')所以编写代码,这样做没有标准的C++中的内置能力。正如前面的注释所指出的,“代码< > char b=‘105’;导致了实现定义的行为,即这不是标准C++,除非您确切地知道您正在做什么,否则不应该使用它。如果您想将字符串“1”、“2”转换,“三",等等。然后你必须自己编程。这个没有内置功能。你必须在程序中定义这些单独的字符串,然后使用来比较用户的输入和这些单独的预定义字符串。好的,谢谢大家的帮助。@AndreasWenzel我正试图将单词“5”转换为“5”。我不确定你的意思是什么n、
char a=105
是完全有效的C++a
char
至少在-128到127或0到255之间。因此105始终是char的有效值: