我有一段代码,该代码遍历了我认为是ASCII的前256个字符,输出了该字符,并在文本文件中输出了该字符串的出现。奇怪的是,它输出的字符与任何在线ASCII表都不对应。第一个字符(i = 0)为空,但是第二个和第三个字符是笑脸,后跟心脏,菱形,棍棒和小铲。更奇怪的是,当我检查字母((char)65 ='A',...)时,一切正常,并且对应于ASCII。为什么是这样?它只会在更标准的符号之前和之后弄乱,表示(char)254 =整数符号。这绝对不是ASCII ...
如果可以的话,我正在Windows 8计算机上通过Code :: Blocks运行此程序。
我的代码:
void display ()
{
int i;
for(i=0; i<256; i++)
{
printf("Character: %c", (char)i);
printf("\tOccurrences: %d", characterCount[i]);
printf("\n");
}
}
ASCII将128个开头的32个字符都指定为不可打印。一些基于ASCII的编码将图形表示分配给这些字符。它们还将图形表示分配给字符128和更高的字符,这些字符甚至都不是ASCII编码的一部分。例如,一种称为Page 437的通用PC编码将笑脸分配给字符1和2,将描述卡片套装的字符分配给字符3至7,依此类推。
您所描述的内容非常类似于Page437。但是,此行为很大程度上取决于系统。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句