如何打印带有诅咒的ASCII表
我试图打印ASCII表,但显示的字符是如何打印带有诅咒的ASCII表,c,ncurses,C,Ncurses,我试图打印ASCII表,但显示的字符是^N^O^p^Q^R^S,等等 要制作RPG引擎,我需要将ASCII表放在屏幕上,以便用户选择互动程序 for (i = 0; i < 256; i++){ wprintw(tiles_window, "%c", i); } (i=0;i
^N^O^p^Q^R^S
,等等
要制作RPG引擎,我需要将ASCII表放在屏幕上,以便用户选择互动程序
for (i = 0; i < 256; i++){
wprintw(tiles_window, "%c", i);
}
(i=0;i<256;i++)的{
wprintw(平铺窗口,“%c”,i);
}
然而,正如我所说,这只是显示,^A^L^C
..(n)诅咒将显示可打印的信息。它专门处理某些控制字符,如制表符、换行符、回车符、退格符(参见手册页)。每个字符都有一个可打印的表单。您可以为此使用keyname
,它将控制字符显示为^A
,等等。但是,通过使用,您可以确保addch
可用于定位的特殊字符是可打印的
您的示例可能如下所示:
for (i = 0; i < 256; i++){
wprintw(tiles_window, "%4s ", keyname(i));
}
^@ ^A ^B ^C ^D ^E ^F ^G ^H ^I ^J ^K ^L ^M ^N ^O
^P ^Q ^R ^S ^T ^U ^V ^W ^X ^Y ^Z ^[ ^\ ^] ^^ ^_
! " # $ % & ' ( ) * + , - . /
0 1 2 3 4 5 6 7 8 9 : ; < = > ?
@ A B C D E F G H I J K L M N O
P Q R S T U V W X Y Z [ \ ] ^ _
` a b c d e f g h i j k l m n o
p q r s t u v w x y z { | } ~ ^?
M-^@ M-^A M-^B M-^C M-^D M-^E M-^F M-^G M-^H M-^I M-^J M-^K M-^L M-^M M-^N M-^O
M-^P M-^Q M-^R M-^S M-^T M-^U M-^V M-^W M-^X M-^Y M-^Z M-^[ M-^\ M-^] M-^^ M-^_
M- M-! M-" M-# M-$ M-% M-& M-' M-( M-) M-* M-+ M-, M-- M-. M-/
M-0 M-1 M-2 M-3 M-4 M-5 M-6 M-7 M-8 M-9 M-: M-; M-< M-= M-> M-?
M-@ M-A M-B M-C M-D M-E M-F M-G M-H M-I M-J M-K M-L M-M M-N M-O
M-P M-Q M-R M-S M-T M-U M-V M-W M-X M-Y M-Z M-[ M-\ M-] M-^ M-_
M-` M-a M-b M-c M-d M-e M-f M-g M-h M-i M-j M-k M-l M-m M-n M-o
M-p M-q M-r M-s M-t M-u M-v M-w M-x M-y M-z M-{ M-| M-} M-~ M-^?
(i=0;i<256;i++)的{
wprintw(平铺窗口,“%4s”,关键字名称(i));
}
要生产这样的产品:
for (i = 0; i < 256; i++){
wprintw(tiles_window, "%4s ", keyname(i));
}
^@ ^A ^B ^C ^D ^E ^F ^G ^H ^I ^J ^K ^L ^M ^N ^O
^P ^Q ^R ^S ^T ^U ^V ^W ^X ^Y ^Z ^[ ^\ ^] ^^ ^_
! " # $ % & ' ( ) * + , - . /
0 1 2 3 4 5 6 7 8 9 : ; < = > ?
@ A B C D E F G H I J K L M N O
P Q R S T U V W X Y Z [ \ ] ^ _
` a b c d e f g h i j k l m n o
p q r s t u v w x y z { | } ~ ^?
M-^@ M-^A M-^B M-^C M-^D M-^E M-^F M-^G M-^H M-^I M-^J M-^K M-^L M-^M M-^N M-^O
M-^P M-^Q M-^R M-^S M-^T M-^U M-^V M-^W M-^X M-^Y M-^Z M-^[ M-^\ M-^] M-^^ M-^_
M- M-! M-" M-# M-$ M-% M-& M-' M-( M-) M-* M-+ M-, M-- M-. M-/
M-0 M-1 M-2 M-3 M-4 M-5 M-6 M-7 M-8 M-9 M-: M-; M-< M-= M-> M-?
M-@ M-A M-B M-C M-D M-E M-F M-G M-H M-I M-J M-K M-L M-M M-N M-O
M-P M-Q M-R M-S M-T M-U M-V M-W M-X M-Y M-Z M-[ M-\ M-] M-^ M-_
M-` M-a M-b M-c M-d M-e M-f M-g M-h M-i M-j M-k M-l M-m M-n M-o
M-p M-q M-r M-s M-t M-u M-v M-w M-x M-y M-z M-{ M-| M-} M-~ M-^?
^A^B^C^D^E^F^G^H^I^J^K^L^M^N^O
^P^Q^R^S^T^U^V^W^X^Y^Z^[^\^]^_
! " # $ % & ' ( ) * + , - . /
0 1 2 3 4 5 6 7 8 9 : ; < = > ?
@A B C D E F G H I J K L M N O
P Q R S T U V W X Y Z[\]^_
`a b c d e f g h i j k l m n o
p q r s t u v w x y z{|}^?
M-^@M-^A M-^B M-^C M-^D M-^E M-^F M-^G M-^H M-^I M-^J M-^K M-^L M-^M-^N M-^O
M-^P M-^Q M-^R M-^S M-^T M-^U M-^V M-^W M-^X M-^Y M-^Z M-^[M-^\M-^]M-^^M-^_
M-M-!M-“M-#M-$M-”M-&M-'M-(M-)M-*M-+M-,M--M-。M-/
M-0m-1m-2m-3m-4m-5m-6m-7m-8m-9m-:M-;M-M-?
M-@M-A M-B M-C M-D M-E M-F M-G M-H M-I M-J M-K M-L M-M-M-N M-O
M-P M-Q M-R M-S M-T M-U M-V M-W M-X M-Y M-Z M-[M-\M-]M-^M-_
M-`M-a M-b M-c M-d M-e M-f M-g M-h M-i M-j M-k M-l M-M-M-n M-o
M-p M-q M-r M-s M-t M-u M-v M-w M-x M-y M-z M-{M-|M-}M-~M-^?
如果我的任务是打印ASCII表而没有明显的目的,我也会说很多脏话。还要注意的是,你必须为不可打印的字符做出规定,如“M(回车,ASCII 13)。建议:请1)明确说明你想做什么(更详细),2)显示一些示例代码(您遇到问题的地方)@JohnColeman:我想知道,如果OP采用文字作业,他的老师会有什么反应…ncurse
与打印控制字符无关。ncurse
是为终端功能生成转义序列。我想你想知道的是哪种或哪种类型的终端可以显示控制字符在旧的DOS
世界中,这样的终端存在于^D
以黑桃显示的地方。同样,这也是终端代表这些非打印字符的地方。我在回答中指出了这一点。但是,这样做允许您打印^H
(退格),^I
(制表符),^J
(换行符),^M
(回车)。没有可移植的方法可以为所有256个代码打印单个字符。那么,如何打印?