1. 程式人生 > >C語言基礎教程 printf( )函式中的回車‘\r’與回車換行'\n'

C語言基礎教程 printf( )函式中的回車‘\r’與回車換行'\n'

今天完成了初級階段的學習,其實以前在開發微控制器的時候用過C語言,但是沒有系統的學過,所以再次學習感覺能夠查缺補漏。

C語言中的printf( )函式是一個很重要的函式。printf( )中的字元包含了三種:

(1)以%開頭的格式控制字元

(2)以 \ 開頭的轉義字元

(3)普通字元

在printf函式中一旦出現格式控制字元%和轉義字元 \  ,他們會立即尋找後面緊跟著的字元進行組合。這裡我進行了簡單總結:

#格式控制符#

%i---輸出一個整型數;

%d---輸出一個整型數;

%f---輸出一個浮點數;

%e---輸出一個浮點數,科學計數法;

%g---輸出一個浮點數,當指數小於-4或者大於5,則運用科學計數法,否則正常顯示浮點數;
%c---輸出一個字元; %o---輸出一個八進位制的整型數,前面不帶0; %#o---輸出一個八進位制的整型數,前面帶0; %x---輸出一個十六進位制的整型數,前面不帶0x; %#x---輸出一個十六進位制的整型數,前面帶0x, 如果x大寫,則顯示的時候也是大寫。 %u---不帶符號的十進位制整數。 %%---輸出一個%。

#轉義字元#

\n        回車換行

\t        橫向跳格(相當於tab)

\v        豎向跳格(印表機專用)

\r        回車

\f        換頁(印表機專用)

\b        退格(相當於backspace)

\\        反斜槓字元\

\'        單引號 '

\"        雙引號“

\ddd        以八進位制形式代表的ASCII字元

\xhh        以十六進位制形式代表的ASCII字元

\0        空值

 

下面是本次感悟的重點:\n \r 這兩個轉義字元的具體含義:

(1)二者都有“回車”的意思,那麼“回車”是什麼意思呢?如果能搞清楚回車的含義,就可以很清楚知道這兩個轉義字元的區別了。

回車這個詞,其實是來源於針式打字機(一些諜戰片能看到,例如《北平無戰事》第44集)如下圖:




最後一張圖中那個裝鑄造字型的機構就叫字車,因為它還要左右移動,象固定在軌道上的車一樣,故稱為字車

打字的時候,字車由左向右移動,打完一行,要將字車回到最左邊,這個過程可以理解為“回車”,所以回車的意思就是將字車回到首列。而如果要繼續打字,就要將字車移到下一行,繼續從左到右,一個一個打字。

現代計算機語言中延續了“回車”的概念,而以前打字機的字車的概念等同於現在的螢幕上游標,所以科學家在設計C語言時,採用了“回車”的這種概念:

‘\r’就是將游標移到本行的首列。

回車換行的‘\n’就是將游標移到本行首列以後換行(移到下一行)。