#include<iostream.h>
void main()
{
int a;
for (a=0;a<=300;a++)
cout<<char(a);
}
为什么输出的最后都是乱码,而且前面不完整,结尾有汉字,谢谢了
首先ASCII 是一个char,[-128~127]区间
0-127 是普通ASCII,又分为可打印字符和不可打印的控制字符.
不可打印的有'\n'(10) '\r'(13) '\t','\b'等,用作打印控制的,所以前面不完整是正常的,比如你输出到13的时候,光标会移动到这一行的开头重新打印,这样会覆盖一些内容.
ASCII小于0的,用作MultiBytes,如果两个ASCII,第一个是负数,那么它会跟后面的一个字符连接,组成Multibytes,显示为系统语言代码页的字符.windows中文的语言默认的语言代码页是中文(936).所以显示中文.
0-127 是普通ASCII,又分为可打印字符和不可打印的控制字符.
不可打印的有'\n'(10) '\r'(13) '\t','\b'等,用作打印控制的,所以前面不完整是正常的,比如你输出到13的时候,光标会移动到这一行的开头重新打印,这样会覆盖一些内容.
ASCII小于0的,用作MultiBytes,如果两个ASCII,第一个是负数,那么它会跟后面的一个字符连接,组成Multibytes,显示为系统语言代码页的字符.windows中文的语言默认的语言代码页是中文(936).所以显示中文.
温馨提示:答案为网友推荐,仅供参考
第1个回答 2010-04-01
不能到 300,到128就够了。
后面是乱码才正常。
汉字,是因为超过128了。
后面是乱码才正常。
汉字,是因为超过128了。
第2个回答 2010-04-01
ASCII码表中只有128个字符,扩展的ASCII码表中有256个字符,没有300个那么多。