發信人: ax.bbs@bbs.ee.nthu.edu.tw. (athena), 信區: test
標 題: 星星流講座 0012
發信站: ☆清華電機☆ (Wed May 10 20:11:28 1995)
轉信站: star
星星流講座 0012 C 語言教室
第 3 講 之 5 基本的輸出與輸入
Topic: Usage of printf (2)
再來看看 Size 這個欄位,它可以是以下三個字元的其中一個:
字元 意義
------------------------------------------------------
h 欲替換的變數是 short 或 unsigned short 的型態
l 欲替換的變數是 long 或 unsigned long
L 欲替換的變數是 long double 的型態
利用 Size 這個欄位和 Type 欄配合,就可以印出所有的基本資料型態了。
此外,若是機器上的浮點數發生了 IEEE 規格規定中 NaN (Not A Number)
或是 Infinity 的情形,那麼 printf 將直接印出 NaN 和 Infinity 的訊
息。
Precision 欄位通常是用以表示浮點數印出到小數點後幾位用的,但是它也
可以當成列印的最大欄寬 (Width 欄位是最小欄寬),這是什麼意思呢?
以下為範例程式:
/* printf2.c */
#include <stdio.h>
#include <string.h>
void main (void)
{
char a[13];
strcpy (a, "Hello, world");
printf (":%s:\n", a);
printf (":%10s:\n", a);
printf (":%.10s:\n", a);
printf (":%-10s:\n", a);
printf (":%.15s:\n", a);
printf (":%-15s:\n", a);
printf (":%15.10s:\n", a);
printf (":%-15.10s:\n", a);
}
執行結果:
:Hello, world:
:Hello, world:
:Hello, wor:
:Hello, world:
:Hello, world:
:Hello, world :
: Hello, wor:
:Hello, wor :
printf 的解說到此告一段落,同時我們要給各位第一個自己動手做的機會,
請你寫一個程式,利用 printf 顯示所有我們曾經講過的基本資料型態,並
比較 printf 四種列印浮點數的型態 (e, E, g, G) 的不同。