\r與\n的實驗測試test

儘管\r與\n已經連起來用了很久了,但是還沒仔細的做過任何實驗體會下,正好今晚有空,坐等歐冠決賽開打.....

首先測試下'\r',打印如下:

printf("123\rabc");
printf("1234\rabc");
printf("123\rabcd");
輸出結果分別爲:

abc

abc4

abcd

由此可見,第一句裏面,在輸出123之後,碰到\r時,會將光標移到行首也就是123的前面,然後在這裏輸出abc,abc覆蓋了123;

第二句代碼,可以驗證,123確實被abc覆蓋掉,而4沒有被覆蓋。

接下來,測試'\n'

printf("123\nabc");
printf("\n1234abc");
printf("123\nabcd\n456");
結果爲:

第一句:

123

456
第二句:

123456

第三句:

123

abcd

456

發現在新行後也都是從最左邊開始的,與\r\n沒有區別,再來測試下\r\n

printf("123\r\nabc");
printf("\r\n1234abc");
printf("123\r\nabcd\r\n456");
結果與單獨用\n是一樣的,測試\n\r的結果與上面也是一樣的。

下面是從別處引用的一些話:

1.我們在平時使用電腦時,已經習慣了回車和換行一次搞定,敲一個回車鍵,即是回車,又是換行,但在早期的打字機上,要另起一行打字需要兩個步驟,首先要發送命令"\r”將打字頭復位,即回車,然後再發送命令"\n”讓打字機走紙移到下一行,所以這個歷史遺留問題導致瞭如今我們在DOS-Windows的系統裏需要區分"\r\n”和“\n”,但在Unix中只有"\n”


2.有時候在文本文件中出現■這樣的符號,是因爲沒有"\r\n"連用,導致不能正確回車換行。在C中讀取文本時,"\r\n”已自動轉成"\n”。 


3.在windows下,\r\n的表現和只有留下一個字符是一樣的,因爲被特殊處理過了,以使打印機打出來的和畫面上的表現一致。在Unix下,通常只有\r,如果是\r\n,用vi打開會看到行末有【^M】符號。











發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章