Das Problem ist, das Du in Deiner Frage nicht berücksichtigst wie "\n"
und damit '\n' normalerweise repräsentiert wird. D.h. wenn Du eine Frage
darüber stellst, musst Du dazu deutlich kennzeichnen was Literale sind
und aus welcher Sprachdefinition sie stammen.
Wenn Du nun also versuchst, mit
"Dies ist ein ganz langer Text1\n\r"
kein '\n' in einem String zu erzeugen, dann ist mir und sonst auch
keinem klar wie Du darauf kommst, wenn Du C kannst, denn das geht nicht.
Es ist gerade die Definition eines ASCII-Linefeed das es als
Zeichenliteral in C eben als '\n' bzw. in Strings "\n" geschrieben wird.
Wenn Du was anderes willst kannst Du Dich entweder an die C-Konvention
von Literalen halten. Dann tue das auch oder Du nutzt eine andere
Konvention, dann musst Du die auch nennen oder beschreiben. Sonst wissen
wir nicht ob das was Du schreibst, das Ding selbst ist oder eine
Beschreibung davon.
Klar?
Also pass auf. Das steht zwar alles in einem C-Buch aber ich schreib es
mal kurz.
Der String "\n" besteht aus einem ASCII-Linefeed.
Der String "\\n" besteht aus einem Backslash und einem 'n'.
Was davon willst Du nun?