C 語言中的 printf() 格式輸出
作為 C 語言中主力的標(biāo)準(zhǔn)輸出函數(shù), printf 為我們提供了豐富的格式選項。
1. 格式參數(shù)
首先列舉一下 printf 全部的參數(shù):
% [標(biāo)志位] [顯示占位寬度] [精度] [數(shù)字長度] 說明符
這里面用括號包裹的內(nèi)容為可選參數(shù),我們分項來介紹上面的各項參數(shù),首先從最常用的說明符開始介紹:
說明符 | 參數(shù)含義 | 輸出示例 |
---|---|---|
o | 無符號八進制數(shù) | 410 |
x | 無符號十六進制數(shù) | 7ff |
X | 無符號十六進制數(shù)(表示數(shù)字的字母部分大寫) | 7FF |
d 或者 i | 有符號十進制整數(shù) | -3245 |
u | 無符號十進制整數(shù) | 3421 |
f 或者 F | 十進制浮點數(shù) | 3.14 |
e | 科學(xué)計數(shù)法 表示指數(shù)的e小寫 | 3.142333e+2 |
E | 科學(xué)計數(shù)法 表示指數(shù)的e小寫 | 3.142333E+2 |
g | 在 %e 和 %f 格式中,自動選擇最短的輸出格式 | 3.14 |
G | 在 %E 和 %F 格式中,自動選擇最短的輸出格式 | 3.14 |
c | 字符 | h |
s | 字符串 | hello |
p | 指針地址 | 8ffff |
接下來是標(biāo)志位的介紹。
標(biāo)志位 | 參數(shù)含義 |
---|---|
- | 向左對齊,默認(rèn)是向右對齊 |
+ | 強制顯示正負(fù)號,在默認(rèn)情況下對于只有負(fù)數(shù)的時候才顯示負(fù)號 |
再下來介紹寬度參數(shù):
寬度 | 參數(shù)含義 |
---|---|
(數(shù)字) | 顯示的最小寬度。如果要顯示的內(nèi)容達(dá)不到最小寬度數(shù)值,那么用空格補齊。 |
然后介紹顯示精度的參數(shù)。
精度 | 參數(shù)含義 |
---|---|
(數(shù)字) | 最小精度的數(shù)值 |
最后的數(shù)字的長度的問題比較復(fù)雜,所以通過對比表格展示了參數(shù)使用前后的區(qū)別。表格第一行表示不使用參數(shù)的情況下的顯示。
數(shù)字長度 | d i | u o x X | f F e E g G | c | s |
---|---|---|---|---|---|
(none) | int | unsigned int | double | int | char* |
hh | signed char | unsigned char | |||
h | short int | unsigned short int | |||
l | long int | unsigned long int | wint_t | wchar_t* | |
ll | long long int | unsigned long long int | |||
j | intmax_t | uintmax_t | |||
z | size_t | size_t | |||
t | ptrdiff_t | ptrdiff_t |
2. 實例參考
下面我們來看下 printf() 函數(shù)的具體使用:
#include <stdio.h>
int main()
{
printf ("Characters: %c \n", 'a');
printf ("Decimals: %d %+ld\n", -1977, 650000L);
printf ("Preceding with blanks: %10d \n", 1977);
printf ("Preceding with zeros: %010d \n", 1977);
printf ("Some different radices: %d %x %o %#x %#o \n", 100, 100, 100, 100, 100);
printf ("floats: %4.2f %+.0e %E \n", 3.1415, 3.1415, 3.1415);
printf ("%s \n", "A string");
return 0;
}
顯示效果:
Characters: a
Decimals: -1977 +650000
Preceding with blanks: 1977
Preceding with zeros: 0000001977
Some different radices: 100 64 144 0x64 0144
floats: 3.14 +3e+00 3.141500E+00
A string
3. 小結(jié)
對于 printf 函數(shù), C 語言中提供了非常多的顯示格式的選項,以方便大家用來與用戶進行交互使用。
這里里面的必選項是說明符,也就是說明你要是顯示的數(shù)據(jù)的類型。而諸如標(biāo)志位,顯示占位符,顯示數(shù)字的精度,數(shù)字的長度等參數(shù)都是可選參數(shù),根據(jù)你要顯示的需求和顯示的屏幕的情況來自己選擇。
還有一點請記住,在使用這個函數(shù)的時候,不要忘記引用這個函數(shù)所在的程序庫,也就是 #include <stdio.h>
,要添加在程序的起始位置上。