0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

文本或源代碼中\(zhòng)n 和 \r 的用法及區(qū)別

如意 ? 來源:strongerHuang微信公眾號 ? 作者:strongerHuang微信公眾 ? 2020-08-24 17:00 ? 次閱讀

我們使用printf打印時基本都會用到 \n 和 \r 之類控制字符,比如:

printf(“hello world!\r\n”);

那你知道這些 \n 和 \r 的區(qū)別嗎?

一、關于 \n 和 \r

在ASCII碼中,我們會看到有一類不可顯示的字符,叫控制字符,其中就包含\r 和 \n 等控制字符。

文本或源代碼中\(zhòng)n 和 \r 的用法及區(qū)別

\n : 換行符(newline),另起一行,對應ASCII值10(縮寫:LF)。

\r : 回車符(return),回到一行的開頭,對應ASCII值13(縮寫:CR)。

回車和換行來源:

在計算機還沒有出現(xiàn)之前,有一種叫做電傳打字機(Teletype Model 33)的玩意兒,每秒鐘可以打10個字符。但是它有一個問題,就是打完一行換行的時候,要用去0.2秒,正好可以打兩個字符。要是在這0.2秒里面,又有新的字符傳過來,那么這個字符將丟失。

于是,研制人員想了個辦法解決這個問題,就是在每行后面加兩個表示結束的字符。一個叫做“回車”,告訴打字機把打印頭定位在左邊界;另一個叫做“換行”,告訴打字機把紙向下移一行。

這就是“換行”和“回車”的來歷,從它們的英語名字上也可以看出一二。

二、\n 和 \r差異

后來,計算機發(fā)明了,這兩個概念也就被搬到了計算機上。那時,存儲器很貴,一些科學家認為在每行結尾加兩個字符太浪費了,加一個就可以。于是,就出現(xiàn)了分歧。

‘\r’是回車,‘\n’是換行,前者使光標到行首,后者使光標下移一格。通常用的Enter是兩個加起來。

有的編輯器只認\r\n,有的編輯器則兩個都認。所以要想通用的話,最好用\r\n換行。

在微軟的MS-DOS和Windows中,使用“回車CR(‘\r’)”和“換行LF(‘\n’)”兩個字符作為換行符;

Windows系統(tǒng)里面,每行結尾是 回車+換行(CR+LF),即“\r\n”;

Unix系統(tǒng)里,每行結尾只有 換行CR,即“\n”;

Mac系統(tǒng)里,每行結尾是 回車CR 即‘\r’;

所以我們平時編寫文件的回車符應該確切來說叫做回車換行符;

三、影響

一個直接后果是,Unix/Mac系統(tǒng)下的文件在Windows里打開的話,所有文字會變成一行;而Windows里的文件在Unix/Mac下打開的話,在每行的結尾可能會多出一個^M符號。

Linux保存的文件在windows上用記事本看的話會出現(xiàn)黑點。這個應該很多人都看到過,比如,Keil代碼中直接顯示換行符:

文本或源代碼中\(zhòng)n 和 \r 的用法及區(qū)別

互相轉換

在linux下,命令unix2dos 是把linux文件格式轉換成windows文件格式,命令dos2unix 是把windows格式轉換成linux文件格式。

在不同平臺間使用FTP軟件傳送文件時, 在ascii文本模式傳輸模式下, 一些FTP客戶端程序會自動對換行格式進行轉換。 經過這種傳輸?shù)奈募止?jié)數(shù)可能會發(fā)生變化。

如果你不想ftp修改原文件, 可以使用bin模式(二進制模式)傳輸文本。一個程序在windows上運行就生成CR/LF換行格式的文本文件,而在Linux上運行就生成LF格式換行的文本文件。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • ASCII
    +關注

    關注

    5

    文章

    172

    瀏覽量

    35107
  • 源代碼
    +關注

    關注

    96

    文章

    2945

    瀏覽量

    66752
  • 文本顯示器
    +關注

    關注

    0

    文章

    11

    瀏覽量

    20847
收藏 人收藏

    評論

    相關推薦

    java文本編輯器下載(源代碼)

    java文本編輯器有哪些?給大家分享一下免費的java文本編輯器下載(源代碼)地址。好用。htmlArea v2.03A free WYSIWYG editor replacement for fields.from your
    發(fā)表于 06-02 21:29 ?31次下載

    快速編輯源代碼

    快速編輯源代碼 實驗要求:通過實驗,了解網頁源代碼編寫結構機利用Dreamweaver查看網頁自動生成的源代碼,掌握HTML的常用標記及對網頁
    發(fā)表于 02-10 15:00 ?10次下載

    floodFill函數(shù)用法示例

    《OpenCV3編程入門》書本配套源代碼floodFill函數(shù)用法示例
    發(fā)表于 06-06 15:09 ?2次下載

    erode函數(shù)用法示例

    《OpenCV3編程入門》書本配套源代碼erode函數(shù)用法示例
    發(fā)表于 06-06 15:09 ?1次下載

    boxFilter函數(shù)用法示例

    《OpenCV3編程入門》書本配套源代碼boxFilter函數(shù)用法示例
    發(fā)表于 06-06 15:09 ?2次下載

    canny函數(shù)用法示例

    《OpenCV3編程入門》書本配套源代碼canny函數(shù)用法示例
    發(fā)表于 06-06 15:20 ?3次下載

    HoughLines函數(shù)用法示例

    《OpenCV3編程入門》書本配套源代碼:HoughLines函數(shù)用法示例
    發(fā)表于 06-06 15:20 ?3次下載

    HoughLinesP函數(shù)用法示例

    《OpenCV3編程入門》書本配套源代碼:HoughLinesP函數(shù)用法示例
    發(fā)表于 06-06 15:20 ?2次下載

    Laplacian函數(shù)用法示例

    《OpenCV3編程入門》書本配套源代碼:Laplacian函數(shù)用法示例
    發(fā)表于 06-06 15:20 ?3次下載

    resize函數(shù)用法示例

    《OpenCV3編程入門》書本配套源代碼:resize函數(shù)用法示例
    發(fā)表于 06-06 15:20 ?2次下載

    pyrDown函數(shù)用法示例

    《OpenCV3編程入門》書本配套源代碼:pyrDown函數(shù)用法示例
    發(fā)表于 06-06 15:20 ?16次下載

    Scharr函數(shù)用法示例

    《OpenCV3編程入門》書本配套源代碼:Scharr函數(shù)用法示例
    發(fā)表于 06-06 15:20 ?14次下載

    python的html基本結構及常見文本標簽源代碼免費下載

    本文檔的主要內容詳細介紹的是python的html基本結構及常見文本標簽源代碼免費下載。
    發(fā)表于 12-04 08:00 ?0次下載
    python的html基本結構及常見<b class='flag-5'>文本</b>標簽<b class='flag-5'>源代碼</b>免費下載

    嵌入式開發(fā), \r和\r\n區(qū)別

    ? ? ?在嵌入式開發(fā),經常會涉及到用UART去打印一些運算中間層數(shù)據(jù)作為調試,或者是打印輸出結果。為了處理數(shù)據(jù)的方便性,經常會涉及到數(shù)據(jù)的換行操作。那么在換行過程\r和\r\
    發(fā)表于 11-03 09:21 ?11次下載
    嵌入式開發(fā)<b class='flag-5'>中</b>, \<b class='flag-5'>r</b>和\<b class='flag-5'>r</b>\<b class='flag-5'>n</b>的<b class='flag-5'>區(qū)別</b>

    pythontext的用法

    可以使用text(字符串)進行各種操作,例如創(chuàng)建、訪問、修改、連接、比較和搜索等。下面將詳細介紹Python中使用text的各種用法。 創(chuàng)建和訪問文本: 在Python,我們可以使用單引號
    的頭像 發(fā)表于 11-23 15:46 ?3666次閱讀