在C語言中,有三個函數可以用來在顯示器上輸出數據,它們分別是:
puts():只能輸出字符串,並且輸出結束後會自動換行。
putchar():只能輸出單個字符。
printf():可以輸出各種類型的數據。
printf() 是最靈活、最複雜、最常用的輸出函數,完全可以替代 puts() 和 putchar(),大家一定要掌握。
舉例:
#include
int main()
{
printf("這是我的博客:\n");
printf("www.yuanshijie.top\n");
return 0;
}
運行結果:
printf() 格式控制符的完整形式如下:
%[flag][width][.precision]type
[ ] 表示此處的內容可有可無,是可以省略的。
1) type 表示輸出類型,比如 %d、%f、%c、%lf,type 就分別對應 d、f、c、lf;
type 這一項必須有,這意味著輸出時必須要知道是什麼類型。
2) width 表示最小輸出寬度,也就是至少佔用幾個字符的位置;
首先彙總一下用到的格式控制符:
%c輸出一個單一的字符
%hd、%d、%ld以十進制、有符號的形式輸出 short、int、long 類型的整數
%hu、%u、%lu以十進制、無符號的形式輸出 short、int、long 類型的整數
%ho、%o、%lo以八進制、不帶前綴、無符號的形式輸出 short、int、long 類型的整數
%hx、%x、%lx
%hX、%X、%lX以十六進制、不帶前綴、無符號的形式輸出 short、int、long 類型的整數。如果 x 小寫,那麼輸出的十六進制數字也小寫;如果 X 大寫,那麼輸出的十六進制數字也大寫。
%f、%lf以十進制的形式輸出 float、double 類型的小數
%e、%le
%E、%lE以指數的形式輸出 float、double 類型的小數。如果 e 小寫,那麼輸出結果中的 e 也小寫;如果 E 大寫,那麼輸出結果中的 E 也大寫。
%g、%lg
%G、%lG以十進制和指數中較短的形式輸出 float、double 類型的小數,並且小數部分的最後不會添加多餘的 0。如果 g 小寫,那麼當以指數形式輸出時 e 也小寫;如果 G 大寫,那麼當以指數形式輸出時 E 也大寫。
%s輸出一個字符串
printf()的高級用法
#include
int main()
{
int a1=20, a2=345, a3=700, a4=22;
int b1=56720, b2=9999, b3=20098, b4=2;
int c1=233, c2=205, c3=1, c4=6666;
int d1=34, d2=0, d3=23, d4=23006783;
printf("%-9d %-9d %-9d %-9d\n", a1, a2, a3, a4);
printf("%-9d %-9d %-9d %-9d\n", b1, b2, b3, b4);
printf("%-9d %-9d %-9d %-9d\n", c1, c2, c3, c4);
printf("%-9d %-9d %-9d %-9d\n", d1, d2, d3, d4);
return 0;
}
運行結果:
這樣寫起來更加方便,即使改變某個數字,也無需修改 printf() 語句,增加或者減少空格數目。
%-9d中,d表示以十進制輸出,9表示最少佔9個字符的寬度,寬度不足以空格補齊,-表示左對齊。綜合起來,%-9d表示以十進制輸出,左對齊,寬度最小為9個字符。大家可以親自試試%9d的輸出效果。
想讓你的printf()函數更有趣,我們可以調用一個有意思的小函數Sleep()。
格式:Sleep();//其中S要大寫,在括號內,寫的是間隔的時間,單位是毫秒,一秒等於一千毫秒。
#include
#include
int main()
{
printf("Hello\n");
Sleep(5000);
printf("World\n");
return 0;
}
這段代碼會讓你的電腦顯示Hello World。中間加了Sleep之後,
先打印Hello,五秒之後,再打印World。這樣是不是有趣多了。
printf()是學習C語言最常用的格式輸出函數,是非常有趣的,需要慢慢的研究才能發現他的奧妙。
閱讀更多 源世界Z 的文章