"\r"是回車,前者使游標到行首,(carriage return)"\n"是換行,後者使游標下移一格,(line feed)\r 是回車,return\n 是換行,newline對於換行這個動作,unix下一般只有一個0x0A表示換行("\n"),windows下一般都是0x0D和0x0A兩個字元("\r\n"),蘋果機(MAC OS系統)則採用回車符CR表示下一行(\r)Unix系統裡,每行結尾只有“<換行>”,即“\n”;Windows系統裡面,每行結尾是“<回車><換行>”,即“\r\n”;Mac系統裡,每行結尾是“<回車>”,即“\r”。一個直接後果是,Unix/Mac系統下的檔案在Windows裡開啟的話,所有文字會變成一行;而Windows裡的檔案在Unix下開啟的話,在每行的結尾會多車一個^M字元。Dos和windows採用回車+換行CR/LF表示下一行,即^M$($不是換行符的表示,換行符沒有表示出來,$是文字結束EOF的表示)而UNIX/Linux採用換行符LF表示下一行,即\n蘋果機(MAC OS系統)則採用回車符CR表示下一行,即\rCR用符號"\r"表示, 十進位制ASCII程式碼是13, 十六進位制程式碼為0x0D;LF使用"\n"符號表示, ASCII程式碼是10, 十六製為0x0A. 所以Windows平臺上換行在文字檔案中是使用 0d 0a 兩個位元組表示, 而UNIX和蘋果平臺上換行則是使用0a或0d一個位元組表示.由於dos風格的換行使用\r\n,把這樣的檔案上傳到unix,有些版本的vi不能識別\r,所以vi顯示時在行尾會出現^M出來,但是有些就能識別\r\n,正常顯示回車換行。分享本回答由科學教育分類達人
"\r"是回車,前者使游標到行首,(carriage return)"\n"是換行,後者使游標下移一格,(line feed)\r 是回車,return\n 是換行,newline對於換行這個動作,unix下一般只有一個0x0A表示換行("\n"),windows下一般都是0x0D和0x0A兩個字元("\r\n"),蘋果機(MAC OS系統)則採用回車符CR表示下一行(\r)Unix系統裡,每行結尾只有“<換行>”,即“\n”;Windows系統裡面,每行結尾是“<回車><換行>”,即“\r\n”;Mac系統裡,每行結尾是“<回車>”,即“\r”。一個直接後果是,Unix/Mac系統下的檔案在Windows裡開啟的話,所有文字會變成一行;而Windows裡的檔案在Unix下開啟的話,在每行的結尾會多車一個^M字元。Dos和windows採用回車+換行CR/LF表示下一行,即^M$($不是換行符的表示,換行符沒有表示出來,$是文字結束EOF的表示)而UNIX/Linux採用換行符LF表示下一行,即\n蘋果機(MAC OS系統)則採用回車符CR表示下一行,即\rCR用符號"\r"表示, 十進位制ASCII程式碼是13, 十六進位制程式碼為0x0D;LF使用"\n"符號表示, ASCII程式碼是10, 十六製為0x0A. 所以Windows平臺上換行在文字檔案中是使用 0d 0a 兩個位元組表示, 而UNIX和蘋果平臺上換行則是使用0a或0d一個位元組表示.由於dos風格的換行使用\r\n,把這樣的檔案上傳到unix,有些版本的vi不能識別\r,所以vi顯示時在行尾會出現^M出來,但是有些就能識別\r\n,正常顯示回車換行。分享本回答由科學教育分類達人