【问题标题】:Input string with non printable chars带有不可打印字符的输入字符串
【发布时间】:2013-09-22 15:25:45
【问题描述】:

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

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

【问题讨论】:

    标签: c linux char non-printable


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      不可打印字符的十进制值是 0 到 31。您可以这样打印它们:

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

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

      【讨论】:

      • 我不想打印 C 程序中的字符,而是将它们作为 C 程序的输入,例如: void main(int argc, char *argv[ ]) { 字符 buf[20]; printf("用户名:");获取(缓冲区); }
      • 您可以将输出重定向到程序。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-15
      • 1970-01-01
      • 2016-09-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多