在 Linux 控制台中,当 C 程序要求输入字符串(即用户名)时,我如何插入不可打印的字符?
然后我搜索更好的东西,
printf '\x48\x83\xc4\x50\x48\xbf\x3d...etc' | ./myProgram.bin
或者
./myProgram.bin < dataFile
我更喜欢在需要时输入字符,但我不知道如何编写不可打印的字符。
谢谢
问问题
2490 次
2 回答
0
不可打印字符的十进制值是 0 到 31。您可以这样打印它们:
void main() {
int i;
char c;
for(i=0;i<32;i++) {
c=i;
cout<<c<<" ";
}
getch();
}
同样,您可以根据整数值读取字符……但是,将它们与可打印字符放在一个字符串中,将是另一项艰巨的任务。
于 2013-09-22T17:35:06.580 回答
0
它使用 xclip (printf '\x48\x83...' | xclip) 将字符串复制到剪贴板。
然后,当程序要求输入字符串时,我使用 SHIFT+CTRL+V 粘贴字符串。
它通常有效,除了输入函数 (gets, ...) 可以忽略或用作控制字符的某些字符 (\x08, ...)。
于 2013-09-28T16:18:54.473 回答