【发布时间】:2017-04-27 05:06:03
【问题描述】:
我试图打印完整的 ASCII 图表。同时我在tutorialsschool.com网站上看到了这段代码。
#include<stdio.h>
void main() {
int i;
for(i=0;i<=255;i++){
printf("%d->%c\n",i,i);
}
}
它看起来很完美,但问题是它没有打印位置的符号(我正在使用 Code::Blocks IDE),例如 7、8、9、10 和 32。我真的很困惑为什么它不打印这些位置的值。它在在线编译器上给出了一些奇怪的输出。是 Code::Blocks 的问题吗?打印这些 ASCII 符号的其他程序可能是什么。
【问题讨论】:
-
32 是空格字符,9 是制表符,等等。你至少可以试试 '%c' 看看更多。
-
ASCII 表中的 0 到 31 组被称为“不可打印字符”。因此,您的问题是为什么您的程序不打印不可打印的字符。 32号是空格,确定不是打印出来的?
-
欢迎来到字符编码错误信息的世界。您提供的链接显示了一个不是 ASCII 的表。它看起来像CP437。在 C 或 C++ 中,请参阅程序使用的字符编码的语言环境函数。要查看您的终端(控制台)使用的编码,请转到
locale(Linux) 或chcp(Windows)。两者都不太可能是 ASCII。如果您的 IDE 在非控制台窗口中显示输出,则可能具有通过 IDE 控制的不同设置。