我尝试用C输出字符列表: http://www.alt-codes.net/
for (i=0; i<len; i++){
printf("%d\t: %c", i, i);
}
我得到的所有非ASCII字符的问题?在Ubuntu工作。
如何以良好的方式输出它们。
答案 0 :(得分:1)
格式化效果不佳,但除此之外,您发布的代码仍有效。
ASCII字符0-31是各种空格字符,没有标准化的方式来打印它们。您发布的链接是一个常见但非标准的扩展ASCII表&#34;。无法保证在您的特定平台上打印这些确切的符号。
它们在Windows 7中运行良好,使用GCC和Embarcadero C ++进行测试,都可以打印这些符号。但是在另一个OS和/或编译器上,可能会打印不同的符号或者根本不打印任何符号。
在所有系统上,只保证ASCII字符32 - 126可打印,并且符号相同。
答案 1 :(得分:0)
各种ASCII字符,例如许多低于32的字符,都是不可打印的。您需要在打印之前将不可打印的文件转换为其他内容(例如空格)。
请注意,您链接的ALT代码不是ASCII代码。
答案 2 :(得分:0)
您的字符集可能不包含☺
等字符。您正在查看的是alt键代码符号列表,而不是ASCII。
答案 3 :(得分:0)
根据您的需要,您可以采用十六进制编辑器的方法并仅打印具有图形表示的字符,为此您可以使用isprint()
或isgraph()
(最新的基本上是与isprint()
相同,但不打印ctype.h中定义的空格,例如:
for (i = 0; i < len; i++) {
printf("%d\t: %c", i, isprint(i) ? i : '.');
}