说明符 | 输出 | 范例 |
d or i | 有符号十进制整数 | 392 |
u | 无符号十进制整数 | 7235 |
o | 无符号八进制 | 610 |
x | 无符号十六进制整数 | 7fa |
X | 无符号十六进制整数(大写) | 7FA |
f | 十进制浮点数,小写 | 392.65 |
F | 十进制浮点数,大写 | 392.65 |
e | 科学记数法(尾数/指数),小写 | 3.9265e+2 |
E | 科学表示法(尾数/指数),大写 | 3.9265E+2 |
g | 使用最短的表示:%e或%f | 392.65 |
G | 使用最短的表示:%E或%F | 392.65 |
a | 十六进制浮点数,小写 | -0xc.90fep-2 |
A | 十六进制浮点数,大写 | -0XC.90FEP-2 |
c | 字符 | a |
s | 字符串 | sample |
p | 指针地址 | b8000000 |
n | 不打印任何东西.
对应的实参必须是指向signed int型的指针。 到目前为止写入的字符数存储在指定的位置。 |
|
% | 后跟另一个%字符的%将向标准输出写入单个%。 | % |
flags | 说明 |
- | 在给定的字段宽度内左对齐;右对齐是默认值(参见宽度(width)子说明符)。 |
+ | 对正数强制在结果前面加上一个正号或负号(+或-)。默认情况下,只有负数前面有-号. |
(space) | 如果不写符号,则在值之前插入一个空格。 |
# | 与o, x或x指示符一起使用,对于不同于零的值,值前面分别有0,0x或0x。
与a, A, e, E, f, F, g或G一起使用,它强制输出包含一个小数点, 即使后面没有更多的数字。默认情况下,如果后面没有数字,则不写小数点。 |
0 | 当指定填充时,用0(0)左填充数字,而不是空格(参见宽度(width)子说明符)。 |
width | 说明 |
(number) | 要打印的最小字符数。如果要打印的值比这个数字短,结果将用空格填充。即使结果更大,该值也不会被截断。 |
* | 宽度(width)不是在格式字符串中指定的,而是作为必须格式化的参数前面的一个附加整数值参数。 |
.precision | 说明 |
.number | 对于整数说明符(d, i, o, u, x, X) : 精度(precision)指定要写入的最小数字数。
如果要写入的值比这个数字短,结果将用前导零填充。即使结果较长, 该值也不会被截断。精度(precision)为0意味着不为值0写入字符。 对于a, A, e, E, f和F说明符 : 这是小数点后要打印的位数(默认是6)。 对于g和g说明符 : 这是要打印的最大有效位数。 对于s:这是要打印的最大字符数。默认情况下,将打印所有字符,直到遇到结束的空字符为止。 如果指定的周期没有明确的精度值,则假定为0。 |
.* | 精度(precision)不是在格式字符串中指定的,而是作为必须格式化的参数前面的一个附加整数值参数。 |
说明符 | |||||||
length | d i | u o x X | f F e E g G a A | c | s | p | n |
(none) | int | unsigned int | double | int | char* | void* | int* |
hh | signed char | unsigned char | signed char* | ||||
h | short int | unsigned short int | short int* | ||||
l | long int | unsigned long int | wint_t | wchar_t* | long int* | ||
ll | long long int | unsigned long long int | long long int* | ||||
j | intmax_t | uintmax_t | intmax_t* | ||||
z | size_t | size_t | size_t* | ||||
t | ptrdiff_t | ptrdiff_t | ptrdiff_t* | ||||
L | long double |
/* printf example */ #include <stdio.h> int main() { printf ("Characters: %c %c \n", 'a', 65); 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.1416, 3.1416, 3.1416); printf ("Width trick: %*d \n", 5, 10); printf ("%s \n", "A string"); return 0; } |
Characters: a A Decimals: 1977 650000 Preceding with blanks: 1977 Preceding with zeros: 0000001977 Some different radices: 100 64 144 0x64 0144 floats: 3.14 +3e+000 3.141600E+000 Width trick: 10 A string |
scanf | 从stdin读取格式化的数据(function ) |
fprintf | 将格式化数据写入流(function ) |
fwrite | 将数据块写入流(function ) |
puts | 将字符串写入标准输出(function ) |