输入字符串,带有不可打印的字符

时间:2013-09-22 15:25:46

标签: c linux char non-printable

在Linux控制台中,当C程序要求输入字符串(即用户名)时,如何插入不可打印的字符?
我搜索的东西比其他更好 printf '\x48\x83\xc4\x50\x48\xbf\x3d...etc' | ./myProgram.bin

./myProgram.bin < dataFile
我更喜欢在需要时键入字符,但我不知道如何编写不可打印的字符 谢谢

2 个答案:

答案 0 :(得分:0)

不可打印字符的小数值从0到31.您可以这样打印:

void main()    {
int i;
char c;
for(i=0;i<32;i++)     {
   c=i;
   cout<<c<<" ";
 }
getch();
}

同样,你可以用它们的整数值来读取字符....但是,将它们与可打印字符一起放在一个字符串中,将是另一项艰巨的任务。

答案 1 :(得分:0)

使用xclip(printf'\ x48 \ x83 ...'| xclip)将字符串复制到剪贴板。
然后,当程序要求输入字符串时,我使用SHIFT + CTRL + V来粘贴字符串 它通常有效,除了某些字符(\ x08,...),输入函数(gets,...)可以忽略或用作控制字符。