在Linux控制台中,当C程序要求输入字符串(即用户名)时,如何插入不可打印的字符?
我搜索的东西比其他更好
printf '\x48\x83\xc4\x50\x48\xbf\x3d...etc' | ./myProgram.bin
或
./myProgram.bin < dataFile
我更喜欢在需要时键入字符,但我不知道如何编写不可打印的字符
谢谢
答案 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,...)可以忽略或用作控制字符。