Я думаю, что \ n перемещает стрелку вниз, а \ r перемещает стрелку к началу строки (выравнивание по левому краю)? Я не уверен, хотя
Это правда, более или менее, но в основном историческое любопытство. Первоначально, подача строки (LF) использовалась, чтобы продвинуть бумагу одной линией на принтерах и печатных терминалах ( телепринтеры ); возврат каретки (CR) вернул печатающую головку в начало строки.
Это, вероятно, все еще работает на современных принтерах, когда они используются в «текстовом режиме», но в остальном сегодня мало уместно.
Во всяком случае, мне сказали, что Windows и Linux по-разному обрабатывают переводы строки и возврат каретки.
Разница проста: разработчикам ОС пришлось выбирать, как представлять начало новой строки текста в компьютерных файлах. По различным историческим причинам в мире Unix / Linux в качестве маркера новой строки был выбран один символ LF; MS-DOS выбрал CR + LF, и Windows унаследовала это. Таким образом, разные платформы используют разные соглашения.
На практике это становится все меньше и меньше проблемой. Маркер новой строки действительно имеет отношение только к тем программам, которые обрабатывают «простой текст», и их не так много - он в основном влияет только на исходный код программы, файлы конфигурации и некоторые простые текстовые файлы с документацией. В настоящее время большинство программ, обрабатывающих файлы такого типа (редакторы, компиляторы и т. Д.), Могут обрабатывать оба соглашения новой строки, поэтому не имеет значения, какой из них вы выберете.
В некоторых случаях инструменты настаивают на «своем» соглашении о новой строке (например, сценарии оболочки Unix не должны использовать CR + LF), и в этом случае вы должны использовать правильный.