说明符 | 输出 | 范例 |
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 |
/* fprintf example */ #include <stdio.h> int main () { FILE * pFile; int n; char name [100]; pFile = fopen ("myfile.txt","w"); for (n=0 ; n<3 ; n++) { puts ("please, enter a name: "); gets (name); fprintf (pFile, "Name %d [%-10.10s]\n",n+1,name); } fclose (pFile); return 0; } |
Name 1 [John ] Name 2 [Jean-Franc] Name 3 [Yoko ] |
fscanf | 从流读取格式化的数据(function ) |
printf | 将格式化的数据打印到标准输出(function ) |
fwrite | 将数据块写入流(function ) |
fputs | 将字符串写入流(function ) |