打印ASCII图表
Printing ascii chart
我试图打印完整的ASCII图表。同时,我在Tutorialsschool.com网站上看到了此代码。
#include<stdio.h>
void main() {
int i;
for(i=0;i<=255;i++){
printf("%d->%cn",i,i);
}
}
看起来很完美,但问题在于它不是位置打印符号(我正在使用Code :: blocks IDE),例如7,8,9,10和32。我真的很困惑为什么它不打印在这些位置的值。它给在线编译器上提供了一些怪异的输出。这是代码::块的问题。可能是打印这些ASCII符号的另一个程序。
我真的很困惑为什么它不在这些位置打印值。
因为这些代码是不可打印的ASCII代码。注意标准ASCII代码只有7位(即128个字符) - 其中一些是不可打印的(控制代码) - 因此您不希望您能够打印它们(例如,您可以打印Bell 0x07吗?)
http://www.asciatible.com/
正如Mohit Jain指出的那样,您确实需要使用isprint
函数来检查字符是否可以在标准C语言环境上打印,然后将其打印出来 - 非常方便的功能。
您可能有兴趣知道并非所有的ASCII字符都是可打印。
例如,十进制0至31是不可打印的ascii值。
请参阅此引用,其中提到了相同的。
也就是说,对于托管环境,main()
的预期签名至少为int main(void)
。
只有ASCII字符的子集可打印。有些是控制字符,例如线馈,铃等。
详细信息:ASCII定义为代码0至127。循环仅需要 for(i=0;i<=127;i++)
对于完整的ASCII图表。
-
OTOH,也许要打印所有char
的完整图表。当打印char
时,首先将它们转换为unsigned char
。因此,让我们创建所有unsigned char
的图表。
注意:使用ASCII进行字符代码0至127 in 非常常见,但不由C。
指定要确定unsigned char
是否是可打印,请使用isprint()
函数。对于其他人,打印一个逃生序列。
#include<ctype.h>
#include<limits.h>
#include<stdio.h>
int main(void) {
unsigned char i = 0;
do {
printf("%4d: ", i);
if (isprint(i)) {
printf("'%c'n", i);
} else {
printf("'\x%02X'n", i);
}
} while (i++ < UCHAR_MAX);
return 0;
}
样本输出
0: 'x00'
1: 'x01'
...
7: 'x07'
8: 'x08'
9: 'x09'
10: 'x0A'
...
31: 'x1F'
32: ' '
33: '!'
34: '"'
...
65: 'A'
66: 'B'
67: 'C'
...
126: '~'
127: 'x7F'
...
255: 'xFF'
- C++,在int数组中输入字符串或字符会输出0,而不是ascii或error
- 在另一个类视图中添加最多2个图表的正确方法是什么
- 为什么我的C++程序的程序集输出充满了 .ascii,没有汇编代码?
- 有没有办法通过使用十进制 ASCII 代码自动类型扣除来获取字符?
- 如何将字节数组元素替换为修改的十六进制 ASCII 符号?
- ascii 和 unicode 在处理级别有什么区别吗?
- 在C++中使用 ASCII 代码将输入从小写转换为大写
- 弄清楚如何在C++中将整数读入 ASCII
- Qt 图表条形图调整大小崩溃
- 如何在 Gnuplot 中分别绘制 2 个文件数据?我有一个文件"sin.txt",另一个文件"cos.txt",我想将它们分别绘制在一个图表上
- 如何修复艺术ASCII,我点击一个字母就可以了,但输入一个阶段艺术出来了
- 使用指针将 ASCII 值添加到整数
- 用于 ASCII 的环绕式 C++
- RE2 不匹配非 ASCII 字符
- 打印从 0 到 255 的所有 ASCII 字符
- C++ 电话号码字母拨号程序 - 语法错别字?还是非 ASCII 字符?
- 无符号字符打印其 ASCII 值
- Windows 非 ASCII 文件路径
- 打印ASCII图表
- 当您将不在 ASCII 图表上的字符转换为在 C++ 中键入 int 时会发生什么?