如何在C中打印非ASCII字符



我尝试输出C:http://www.alt-codes.net/

for (i=0; i<len; i++){
    printf("%dt: %c", i, i);
}

我得到的所有非ASCII字符的问题?在Ubuntu上工作。

如何以良好的方式输出它们。

格式的格式将很差,但是除此之外,您发布的代码作品。

ascii字符0-31是各种空间字符,没有标准化的方式来打印它们。您发布的链接是一个常见但非标准的"扩展ASCII表"。不能保证这些确切的符号会在您的特定平台上打印。

他们在Windows 7中对我来说很好,并用GCC和Embarcadero C 进行了测试,都打印了这些符号。但是在另一个操作系统和/或编译器上,可能会打印不同的符号或什么都没有。

只有ASCII字符32-126可以打印,并且在所有系统上具有相同的符号。

各种ASCII字符,例如32岁以下的许多字符都不可打印。在打印之前,您需要将无法打印的内容转换为其他东西(例如空间)。

请注意,您链接到的Alt代码不是ASCII代码。

您的字符可能不包含诸如 之类的字符。您正在查看的是Alt键代码符号的列表,而不是ASCII。

根据您的需求,您可以采用十六进制编辑器的方法并仅打印那些具有图形表示的字符,为此,您可以使用 isprint()isgraph()(本质上是最新的与 isprint()相同,但不要打印空间),例如:

for (i = 0; i < len; i++) {
    printf("%dt: %c", i, isprint(i) ? i : '.');
}

相关内容

  • 没有找到相关文章

最新更新