«Escape-последовательности» в строке или символах в коде разрешаются компилятором в время компиляции .Он вообще не обрабатывается во время выполнения.
Если вы работаете в системе POSIX (например, macOS, Linux или аналогичной), вы можете использовать оболочку для вставки новых строк для вас при запуске вашей программы:
$ ./a.out '`echo -n -e "stack\noverflow"`'
Это вызовет команду echo
и попросит ее повторить строку "stack\noverflow"
без завершающей строки (это то, что делает опция -n
).Внедренный "\n"
будет проанализирован echo
(из-за опции -e
) и вставит новую строку в строку, которую он "печатает".Вывод, напечатанный echo
, будет передан в качестве одного аргумента вашей программе.
Единственный другой вариант - это явный синтаксический анализ строки в вашей программе и вывод новой строки при обнаружении символа '\\'
сопровождаемый символом 'n'
.