Входная строка с непечатаемыми символами

В консоли Linux, когда программа на C запрашивает строку (то есть имя пользователя), как я могу вставить непечатаемые символы?
Тогда я ищу что-то лучшее
printf '\x48\x83\xc4\x50\x48\xbf\x3d...etc' | ./myProgram.bin
или же
./myProgram.bin < dataFile
Я предпочитаю вводить символы, когда это необходимо, но я не знаю, как писать непечатные.
Спасибо

2 ответа

Он работал с использованием xclip (printf '\x48\x83...' | xclip) для копирования строки в буфер обмена.
Затем, когда программа запрашивает строку, я использовал SHIFT+CTRL+V, чтобы вставить строку.
Обычно это работает, за исключением определенных символов (\x08, ...), которые функция ввода (get,...) может игнорировать или использовать в качестве управляющего символа.

Непечатные символы имеют десятичное значение от 0 до 31. Вы можете напечатать их следующим образом:

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

Точно так же вы можете читать символы с точки зрения их целочисленных значений.... Однако размещение их вместе с печатными символами в одной строке будет другой трудной задачей.

Другие вопросы по тегам