意義

2013-02-20 62 views
1

我看這是輸出的喜歡一些Linux特定代碼:意義

\r\x1b[J> 

到STD IO。

據我所知,<ESC>[J表示從當前行向下刪除屏幕的內容,但是\ r在這裏做了什麼?

我也看到了以下內容:

>user_input\n\r> 

其中USER_INPUT是由用戶輸入的文本。但是這裏的目的是什麼?

+0

它發音爲*回車*所以我認爲這將是您輕鬆googleable。 – 2013-02-20 08:55:24

+0

@ om-nom-nom我在上面的上下文中詢問它的目的。 – Baz 2013-02-20 09:02:42

回答

5

字符'\r'回車。它將光標返回到行的開頭。

它經常被用在互聯網協議中,與換行符('\n')一起用來標記行的結尾(大多數標準將其指定爲"\r\n",但有些允許以錯誤的方式)。在Windows上,回車換行符對也用作行結束符。在舊的Macintosh操作系統上(OSX之前),使用單個回車符而不是換行符作爲行結束符,而類UNIX和類UNIX系統(如Linux和OSX)使用單個換行符。

+2

歷史上,新行意味着:在屏幕或打印機上,將光標向下移動一行,但將其保留在同一列中。並且回車將它移動到行的開頭,而不改變行。要開始下一行,您需要兩種方式(按任意順序)。 Unix和Mac的作者顯然認爲他們只需要一個字符就可以開始下一行,並選擇一個字符。 – 2013-02-20 09:19:20

1

控制字符\r將光標(也稱爲文本光標)移動到當前行內最左側的位置。

0

\r是回車。同樣\n是換行。

+0

在文本文件中,'\ n''不僅僅是換行符。文本文件是一串行,'\ n'是行結束符。 – 2013-02-20 09:21:18

1

Wikipedia

系統基於ASCII或兼容的字符集或者LF (換行, '\ n',的0x0A,10十進制)或CR(回車, '\ R' , 0x0D,十進制13),或CR後跟LF(CR + LF, '\ r \ n',0x0D0A)。這些字符是基於打印機命令的: 換行表示一行紙張應從 打印機送出,因此指示打印機將紙張推進一行,並且 回車表示打印機托架應返回到 當前行的開始。某些罕見系統(如版本4之前的QNX )使用ASCII RS(記錄分隔符0x1E,十進制爲 中的30)字符作爲換行符。

0

FWIW - 這是托架控制的一部分 - 從主機控制字到Windows/UNIX/FORTRAN托架控制。可以在像FORTRAN這樣的語言級別或像UNIX和Windows這樣的系統級別上實施支架控制。

\n源於早期PDP用戶「接口」的限制 - tty終端。如果你想看一個博物館,去博物館。

一個非常簡單的問題:\ n \ r之間的區別如上所述。但是,所有這些解釋都確實表明托架控制是依賴於實施的。

[J是ANSI轉義序列的一部分,它們在「符合標準的tty終端」上做了什麼。 DOS用於使ANSI.SYS提供:顏色,下劃線,粗體使用這些序列。

http://ascii-table.com/ansi-escape-sequences.php 

是對這個問題一個很好的參考:what does some odd looking string in the output do?