C строковые литералы не могут содержать литеральные переводы строк. Вот стандарт C18 с выделенной соответствующей частью.
6.4.5 Строковые литералы
Синтаксис
string-literal:
encoding-prefixopt " s-char-sequenceopt "
s-char-sequence:
s-char
s-char-sequence s-char
s-char:
any member of the source character set except
the double-quote ", backslash \, or new-line character <---- HERE
escape-sequence
Если вы хотите, чтобы ваш строковый литерал содержал перевод строки, вместо этого используйте \n
, например, "hello\nworld"
.
Если вы хотите, чтобы ваш строковый литерал был разбит на несколько строк, используйте несколько строковых литералов:
printf("hello "
"world");