我們平時按下鍵盤上的『回車鍵』,就能實現回車換行【我們在螢幕上所看到的就是游標移到了下一行的開頭位置!!ps:不討論軟體實現的特殊功能,如word裡的回車智慧型縮排】。因此對這個按鍵更準確說應該叫做『回車換行鍵』
就且將這種將游標移到下行開頭的功能稱作回車換行吧【注意這和下面將談到的「回車字元」、「換行字元」的區別】!!不同系統對這種功能的實現採用了不同的方式。如windows用兩個控制字元\r\n實現,而linux/unix將其設計為\n,mac也已改為\n。(網上好多文章仍寫著mac是\r!!)
windows
\r\n
0d0a
linux/unix
\n
0a
mac
舊為
\r,現已改為
\n已改為:0a
//\r是mac os 9版本及其之前的回車換行,其後版本為mac os x(基於unix基礎了),回車換行已改為\n
\r和\n在ascii碼下具體為:
控制字元
16進製制
10進製
seq縮寫
含義\n
0a10
^jlf
linefeed(換行,newline)
\r0d
13^m
crcarriage return(回車)
對比下: ascii下,10進製:a是65(41h),a是97(61h),0是48(30h)
關於「回車」(carriage return)和「換行」(line feed)這兩個概念的來歷和區別。
1.電傳打字機(teletype model 33)
方框3:其中,左邊的那個是換行按鍵【即使捲筒上的紙上移一定距離】。。右邊的是回車按鍵【即打字機械移回到最左邊】
箭頭1:是附著在捲筒上的紙。按下換行鍵(方框3中左邊的那個按鍵)後,紙就會隨著捲筒的滾動往上移動一定距離(行間距嗎!?)。。。
箭頭2:很機械化的裝置啊,我就叫它打字頭
箭頭4:紙帶。。。。那幾排按鍵(這就是鍵盤的起源嗎!?):每個按鍵都有與之對應的針孔。啟動列印針孔帶的功能後(看圖,箭頭4下面有4個撥動開關),每次按下的鍵(什麼a呀,b呀,空格呀,縮排呀,回車呀...),其對應的針孔排列就打到紙帶上。呶,就從箭頭5處流出來了。樣子參見旁邊的圖
箭頭6:就是它實現了電傳打字機的自動打字功能,把得到的針孔紙帶扣到這個箭頭6所在的裝置上(就是圖中5、6箭頭之間的那塊灰色方方的地方),然後撥動箭頭6指向的開關,這樣,整個打字機就會自動打字了。。。並不是說該打字機打字必須要針孔紙帶,前面說了,那幾排按鈕本身就能往紙上手動打字,同時可選擇是否往紙帶上打針孔以便以後重複使用。
總結:當我們得到已經製作好的針孔紙帶時,把它扣到箭頭6所在的裝置上,開啟開關,就能實現自動化打字了:打乙個字母,打字頭移一位,當要移到紙下一行開頭打字時(何時取決於按下的回車和換行鍵),打字頭先移到最左邊,然後紙捲筒上移一下,,然後繼續打字。。。。。自己需要製作針孔紙帶或想手動打字時,可靠那幾排按鈕操作。。。(主要注意的就是回車換行:先按下回車按鍵,再按下換行按鍵...嗯,兩者可以換個順序嗎?)。。
2.(選自網上)在計算機還沒有出現之前,這種叫做
電傳打字機(teletype model 33)
的玩意,每秒鐘可以打10個字元。但是它有乙個問題,就是打完一行進行換行的時候,要用去0.2秒,正好可以打兩個字元。要是在這0.2秒裡面,又有新的字元傳過來,那麼這兩個字元將丟失。
於是,研製人員想了個辦法解決這個問題,就是在每行後面加兩個表示結束的字元。乙個字元叫做「回車」,告訴打字機把打字頭定位在左邊界;另乙個字元叫做「換行」,告訴打字機把紙向上移一行。【可見,上面幾張圖所述的這種打字機,其已經是解決好了的:即回車、換行也有了對應的針孔(代表相應的字元,控制字元)】
這就是「換行」和「回車」的來歷,從它們的英語名字上也可以看出一二。
實驗證明:
1.我在windows下用editplus編輯器輸入如下內容: 然後用16進製制形式檢視:
從圖中的0d和0a可以知道按下的回車換行鍵會插入不可見的兩個字元\r \n(不可見,但上述編輯器用小數點取代了其位置)
2.經我在vmware下的ubuntu12.04系統(linux系統)實驗發現(下圖),ubuntu預設的確是\n.......但是\r\n \r這2者在其預設文字編輯器gedit下仍能正常換行的!
可看到回車的確是\n
總結:雖然不同的回車換行控制符在不同的系統、不同的軟體下顯示可能正常、可能不正常。。。但至少證明了這個事實:3類系統的確採用了相應的控制字元或字元組合來實現的回車換行。
回車 n和換行 r的區別
回車是將游標移動到當前行開頭,換行是另起一行。本文 阮一峰老師12年前的一篇文章,阮老師的文章總是那麼清爽,通俗易懂。今天,我總算搞清楚 回車 carriage return 和 換行 line feed 這兩個概念的來歷和區別了。在計算機還沒有出現之前,有一種叫做電傳打字機 teletype mo...
回車( r)和換行( n )的區別
先說說他們的由來 在計算機還沒有出現之前,有一種叫做電傳打字機 teletype model 33 的玩意,每秒鐘可以打10個字元。但是它有乙個問題,就是打完一行換行的時候,要用去0.2秒,正好可以打兩個字元。要是在這0.2秒裡面,又有新的字元傳過來,那麼這個字元將丟失。於是,研製人員想了個辦法解決...
不同系統下的換行符
那麼,到底為什麼會出現這個提示的呢?檔案格式區別 我們先看看這三個者有何區別。很久以前,人們用老式的電傳打字機作為輸入裝置,它使用 兩個字元來另起新行。乙個字元把滑動架移回首位 稱為回車,另乙個字元把紙上移一行 稱為換行,當計算機問世後,由於儲存器曾經非常昂貴。有些人就認定沒必要用兩個字元來表示行尾...