![]() |
C 教材:printf( ) 與跳脫字元 |
在 fahr-40.c 中,我們以
printf("The answer is %d\n", cels);來輸出答案。printf() 是一個外部函式, 它名字裡面的 f 是 format (格式) 的意思。 它的使用模式是
printf(STRING, VARIABLE_1, VARIABLE_2, ...);其中 STRING 是一個字串 (用一對 " " 括起來的字元), VARIABLE_1 VARIABLE_2 依序是若干個變數名。 可以沒有變數名,例如 hello.c 的情況。
printf() 會把字串裡面的所有字元---除了用 \ 和 % 開頭的符號以外---照原樣輸出到標準輸出裝置 (standard output), 以後簡記做 stdout。目前,讀者只要知道, 所謂 stdout 通常是指終端機螢幕,但是容許使用者在 UNIX 介面中使用 pipe 或 redirection 重新導向這些字元。
\ 和 % 開頭的符號也會輸出到 stdout。 只是它們另有意義。 先說 \,它是跳脫字元 (escape character), 用來輸出一些不可見字元,或是特殊字元。先說四個:
在 \ 之後必須緊跟著一個字元,不加空白。 而再後面也不需空白,可以接著寫其他字元。例如
\n LF 字元 (linefeed),亦即 ASCII 10 號 \t HT 字元 (tab),亦即 ASCII 9 號 \" 在字串中輸出 " 字元 \\ 在字串中輸出 \ 字元
printf("here\tis a \"TAB\"\nHere is next line\n");會輸出
here is a "TAB" Here is next line
% 是格式字元 (format character)。 在 % 會接若干個字元,表示解讀變數的方法和輸出的格式。 在字串中,每出現一次 % 就要在後面出現一次變數名。 而且,第一個 % 對應第一個變數名, 第二個 % 對應第二個變數名,依此類推。 先介紹兩種格式:
上面說的 7 可以改成任何正的常數整數。例如
%% 輸出一個 % 符號 %d 以整數型態解讀變數,以恰好的位數輸出 %7d 同上,但以至少 7 位數輸出, 若變數的值不到 7 位,靠右邊排齊,左邊留空白 %-7d 同上, 但若變數的值不到 7 位,靠左邊排齊,右邊留空白
會輸出int n; n = 1234; printf("|%d\n|%1d\n|%3d\n|%5d\n|%9d\n|%13d\n", n,n,n,n,n,n);
|1234 |1234 |1234 | 1234 | 1234 | 1234
最後,我們提醒讀者注意,在這一節裡面,我們寫 printf(), 而不是 printf。 這是書寫 C 語言的習慣。 當我們寫一個函式名的時候,在它的後面加上 () 以提示讀者, 這是個函式,不是變數。 同理,以後我們也會寫 main()。
習題
![]() |
![]() |
單維彰 (2000/03/24) --- |