ASCII表中特殊字符^?的含义是什么?C打印不可打印字符问题
关于ASCII码127(^?)字符的说明
- 你看到的
^?是ASCII码127(十六进制0x7F)字符的终端显示形式,这个字符的正式名称是DEL(删除)。 - 终端里通常用
^X格式表示控制字符:^代表Ctrl键,后面的字符是该ASCII值减去64后对应的字符。但DEL是个特殊情况——按规则它应该显示为^_(127-64=63,对应下划线_),但受早期终端键盘布局的历史影响(DEL键和Ctrl+?操作绑定),像cat这类工具统一把它显示为^?。 - 你用
cat -nt看到的十进制127,和cat -n里的^?完全是同一个字符的不同展示方式。
如果要在C程序里处理这个字符:
- 直接输出原字符的话,用
putchar(127)或者printf("%c", 0x7F)即可; - 要是想和
cat一样显示成^?,可以加个判断:当字符等于0x7F时,输出字符串"^?",而非直接输出原字符。
内容的提问来源于stack exchange,提问作者Flex1sh
相关产品推荐
相关产品推荐

