请编写程序,输出中文,但程序里面不能有中文
比如 输出“C语言真好玩”,但c++source里面不能有中文和字母
[解决办法]
那要去了解了汉字编码了, GB2313 汉字编码占是两个字节, 按字节组合出字放到串中即可.
下面给出例子.
汉字生成;
分区表示
GB 2312中对所收汉字进行了“分区”处理,每区含有94个汉字/符号。这种表示方式也称为区位码。
01-09区为特殊符号。 0xA1-0xA9
16-55区为一级汉字,按拼音排序。 0xB0-0xD7
56-87区为二级汉字,按部首/笔画排序. 0xD8-0xF7
10-15区及88-94区则未有编码。 0xAA-0xAF 0xF8-0xFE
举例来说,“啊”字是GB2312之中的第一个汉字,它的区位码就是1601。
字节结构
在使用GB2312的程序中,通常采用EUC储存方法,以便兼容于ASCII。浏览器编码表上的“GB2312”,通常都是指“EUC-CN”表示法。
每个汉字及符号以两个字节来表示。
第一个字节称为“高位字节”(也称“区字节)”,
第二个字节称为“低位字节”(也称“位字节”)。
“高位字节”使用了0xA1-0xF7(把01-87区的区号加上0xA0),
“低位字节”使用了0xA1-0xFE(把01-94加上 0xA0)。
由于一级汉字从16区起始,汉字区的“高位字节”的范围是0xB0-0xF7,“低位字节”的范围是0xA1-0xFE,占用的码位是 72*94=6768。
其中有5个空位是D7FA-D7FE。
例如“啊”字在大多数程序中,会以两个字节,0xB0(第一个字节) 0xA1(第二个字节)储存。区位码=区字节+位字节(与区位码对比:0xB0=0xA0+16,0xA1=0xA0+1)
。
//随机汉字生成算法. GB2313编码.
CString ChinesWord()
{
srand(time(NULL)+rand());
BYTE Name[3]={0};
Name[0]=0xA0+16+rand()%(0xF7-0xB0);//高字节.如果一级汉字是0xA1-0xA9 特殊符号
int iRange=0xFE-0xA1;//
if(Name[0]==0xD7)
{
iRange=0xFA-0xA1;
}
Name[1]=0xA1+rand()%iRange;//低字节
CString strName;
strName=Name;
return strName;
}
[解决办法]
楼主可以使用16进制字符串或者8进制字符串表示。
[解决办法]
一种方法是用cin获取 输入的字符,显示出来,这个c++source里面就没有汉字了;
第二种 就是用code编码来表示 ,这样也不用汉字,