按主題...在C#中, n和 r n有什麼區別?
回答
\n
是Unix,\r
是Mac,\r\n
是Windows。
有時會出現問題,特別是在運行代碼跨平臺時。您可以通過使用Environment.NewLine
來繞過此操作。
欲瞭解更多信息,請參閱What is the difference between \r, \n and \r\n ?!。快樂閱讀
那麼爲什麼\ n在我的Windows機器上爲我工作? – 2016-12-09 22:39:25
因爲現在的Windows並沒有像以前那樣嚴格,所以它也接受\ n。 – 2017-03-24 09:06:37
@TobySmith我知道這篇文章已經過時了,但是您可以嘗試用「\ n」作爲linebreak寫一個文件,並用標準Windows編輯器打開它。除非你做了「\ r \ n」,否則他不會進行換行。 – 2017-08-16 13:14:02
「\ n」只是一個換行符(Unicode U + 000A)。這通常是Unix行分隔符。
「\ r \ n」是一個回車符(Unicode U + 000D)後跟一個換行符(Unicode U + 000A)。這通常是Windows行分隔符。
Jon,但如果它只是換行,那麼爲什麼圖片中的文字看起來像它也有carrige返回http://i.stack.imgur.com/LKVCr.png?如果它只是一個換行符,那麼_bbb ..._不應該在第二行的最左邊...... – 2013-05-05 08:24:46
@RoyiNamir:這一切都取決於顯示介質。所以它看起來像Windows控制檯shell現在將'\ n'視爲完整的換行符,但它可能並非在所有版本中 - 並且如果您在記事本中將同一數據視爲文件,則*不會*看到一行打破。 – 2013-05-05 08:45:48
基本上可以歸結爲Windows標準:使用\ r \ n和基於Unix的系統:\ n
的區別
有幾個字符,它可以指示一條新線。通常的是這兩個:
* '\n' or '0x0A' (10 in decimal) -> This character is called "Line Feed" (LF).
* '\r' or '0x0D' (13 in decimal) -> This one is called "Carriage return" (CR).
不同的操作系統以不同的方式處理換行符。這是最常見的的短名單:
* DOS and Windows
他們希望換行是兩個字符的組合,即「\ r \ n」(或之後10月13日)。
* Unix (and hence Linux as well)
Unix使用單個'\ n'來表示一個新行。
* Mac
Macs使用單個'\r'
。
從Here
本書標記供將來參考 - 謝謝 – 2010-10-21 09:43:02
AFAIK,Mac自從OSX以來沒有使用'\ r',它們現在使用'\ n'。幾乎每個應用層互聯網協議都使用'\ r \ n',而這些互聯網協議在線路上都是有效的。 – cHao 2011-12-28 16:15:59
這是關於操作系統如何識別行結束服用。
- Windows用戶\ r \ n
- Mac用戶\ r
- Linux使用\ n
士氣:如果你是針對Windows開發,堅持用\ r \ n。或者甚至更好,使用C#字符串函數來處理已經考慮行尾的字符串(WriteLine等)。
使用Environment.NewLine
並不關心。
除非他正在閱讀由其他軟件生成的文件。 – 2010-10-21 09:42:42
\ n是Unix(類似於)系統使用的換行符,\ r \ n被windows使用。這與C#無關。
他們只是\r\n and \n
是變種。
\r\n
在
\n
在MAC使用Windows和Linux
\ N = LF(換行)//在unix
\ R = CR用作一個新行字符用於(回車)//在Mac用作一個新行字符
\ r \ N = CR + LF //在Windows
用作一個新行字符(炭)13 = \ R = CR
Environment.NewLine =任何基於操作系統
//淨提供環境類,它提供基於操作系統許多數據上述代碼的,所以如果應用程序是在Windows中構建的,並且在字符串中使用CR + LF(「\ n \ r」而不是Environment.NewLine)作爲新行字符,然後MS創建一個用於在Unix中運行.Net應用程序的VM ,那麼會出現問題。 所以,當你想要一個新的行字符時,你應該總是使用Environment.NewLine。現在你不需要關心操作系統。
- 1. 「Array(n)」和「[... Array(n)]」有什麼區別?
- 2. 在JavaScript中,'\'和'\ n'有什麼區別?
- 3. C#和ASP.NET中的換行符有什麼區別? (\ r \ n與\ n)
- 4. 什麼之間的區別\ r \ n和\ n
- 5. C++中「\ n」或「\ n」與有什麼區別?
- 6. 「$^N」和「$ +」之間有什麼區別?
- 7. \ n和C中的回車鍵有什麼區別?
- 8. 位操作中+ n和(n)之間的區別是什麼?
- 9. \ n和\ r之間的區別是什麼?
- 10. 在字符串中使用回車符和\ r \ n有什麼區別
- 11. x.pow(n)和pow(x,n)之間的區別是什麼?
- 12. 在C++中int和r = x和r = y有什麼區別?
- 13. 有什麼區別:。!和:r!?
- 14. Python中!r和%r有什麼區別?
- 15. 在while循環結束時n ++和++ n的區別? (ANSI C)
- 16. [^ \ n]有什麼用?(在C中)
- 17. 有關array.item(n)和array [n]之間區別的簡單問題?
- 18. printf中%c和%C有什麼區別?
- 19. 是什麼set.seed(n)和set.seed(N + 1)
- 20. 爲什麼有雙\ r \ n,而不是在代碼\ r \ n的PY4E
- 21. @ r $ drawable和@drawable有什麼區別?
- 22. LINQ - .Select(n => n.Name)和.Select(n => new {n.Name})之間的區別;
- 23. 刪除\ r \ n \ r \ n
- 24. 刪除\ r \ n \ r \ n
- 25. 什麼是線的含義N = N和INT(n)的在python
- 26. vi/vim中的s,c和r命令有什麼區別?
- 27. 的Python:在列表中替換\ n \ r \噸不包括起始\ n \ n和與\ n \ r \ n \噸結束
- 28. C++中#import和#include有什麼區別?
- 29. C中#define和'='有什麼區別?
- 30. C#中CLR和DLR有什麼區別?
這與C#無關,因爲它幾乎適用於所有語言。 – leppie 2010-10-21 09:39:49
可能是op ac#guy – Thalaivar 2010-10-21 09:40:40
OP顯然從未使用過打字機http://en.wikipedia.org/wiki/Typewriter – amelvin 2010-10-21 09:42:00