因为输出的是不可见字符,多个不可见字符的内码正好是某个汉字编码,就输出成汉字了
因为+=复合赋值语句把字符c1,c2,c3,c4,c5赋值为其他值了,所以打印会不合预期。
把第6到10行的+=改为=即可。因为赋值是用=,+=是在原来的值的基础上再加上+=符号后面的值,所以需要用=。修改如下:
#include <iostream>
using namespace std;
int main(void){
char c1=67,c2=104,c3=105,c4=110,c5=97;
cout<<(char)c1<<(char)c2<<(char)c3<<(char)c4<<(char)c5<<endl;
//赋值用符号=
c1=71;
c2=108;
c3=109;
c4=114;
c5=101;
cout<<(char)c1<<(char)c2<<(char)c3<<(char)c4<<(char)c5<<endl;
}