打印ascii图表

San*_*mar 7 c c++ ascii

我试图打印完整的ASCII图表.同时我在tutorialsschool.com网站上看到了这段代码.

#include<stdio.h>
void main() {
int i;
for(i=0;i<=255;i++){
    printf("%d->%c\n",i,i);
}
}
Run Code Online (Sandbox Code Playgroud)

它看起来很完美,但问题是它不打印位置的符号(我使用Code :: Blocks IDE),如7,8,9,10和32.我真的很困惑,为什么它不打印那些值location.And它给在线编译器提供了一些奇怪的输出.这就是Code :: Blocks的问题.什么可能是打印这些ASCII符号的其他程序.

art*_*rtm 6

我真的很困惑,为什么它不打印那些位置的值.

因为那些代码是不可打印的ASCII代码.注意标准ASCII代码只有7位(即128个字符) - 其中几个是不可打印的(控制代码) - 所以你不能打印它们(例如,你可以打印Bell 0x07吗?)

http://www.asciitable.com/


正如Mohit Jain所指出的那样,你真的需要使用isprint函数来检查一个字符在打印出来之前是否可以在标准C语言环境中打印 - 非常方便的功能.


Sou*_*osh 3

您可能有兴趣了解并非所有 ASCII 字符都是可打印的

例如,十进制 0 到 31 是不可打印的 ASCII 值。

请参阅此参考文献,其中提到了相同的内容。

也就是说,对于托管环境, 的预期签名至少main()是。int main(void)

  • 是的,不是全部,有些是。 (2认同)