Обновление для редактируемого вопроса:
Вложите свой аргумент команды строки в кавычках:
$ a.out "a\=b="
Кавычки предотвращают оболочку от интерпретации аргумента командной строки в любом случае, так что просто эта строка передан в вашу программу. Я использую команду csh
/bash
.. с обоими.
В качестве альтернативы, вы можете "сбежать" в \
с другой и пропустить двойные кавычки:
$ a.out a\\=b=
Предыдущий ответ на первоначальный вопрос:
Да, использовать два \
:
char a[]="a\\=b=";
выходы:
a\=b=
Пояснение:
\
является экранирующий символ используется для обозначения специальной последовательности символов, поэтому для экземпляра \t
указывает на вкладку. Если вы хотите на самом деле распечатать \t
, вам нужно «сбежать» от этого \
с другим \
. Смотрите этот пример и вывод:
printf("\t-->Hi\n"); /* print regular tab via \t */
printf("\\t-->Hi\n"); /* want to print "\t", not tab ..so we use two \\ */
, что приводит к:
-->Hi
\t-->Hi
Это не уникальной функции printf()
, ни реально C, могут языки использовать обратную косую черту, чтобы указать «экранирующие последовательности "в строках.
Вы изменили вопрос по существу. Прежде чем речь шла о строках в C, теперь возникает вопрос, как ввести строку в командной строке оболочки. –