最近在自学c,但看的那本书没有详细说明printf和scanf的引号参数用法,如printf("%4d",x),这个%4d是什么意思。请其他的具体用法也详细说明,在此谢了!
我给你举个例子你就懂了:
int i = 12;
printf("the number is |%d.", i);
//output: the number is |12.
printf("the number is |%4d.",i);
//output: the number is | 12.
printf("the number is |%04d.",i);
//output: the number is |0012.
printf:
d, i : int; 有符号十进制
o : int; 无符号八进制
x, X : int; 无符号十六进制,x 用 abcdef, X 用 ABCDEF
u : int; 无符号十进制
s : char *,输出字符串到 \0 或者精度指定的长度
f : double; [-]mmm.ddd,d 的长度由精度决定
e,E : double; [-]mmm.ddde [+-]xx ,e 大小写对应控制字符
g, G : double; 质数值小于 -4 或者大于精度时按照 %f 显示,否则按 %e/%E 的形式显示
p : void *; 输出指针值
n : int *; 到目前为止以此格式调用 printf 输出的字符的数目被写入相应变元。不进行转换
% : 不进行变元转换,输出 %
scanf
d : int *,十进制整数
i : int *,可以为 0 开头的八进制或者 0x/0X 开头的十六进制
o : int *,八进制整数,可以带/不带前导 0
u : unsigned int *,十进制
x : int *,十六进制,可以带/不带前导 0x/0X
c : char *, 字符。读入非空字符: %1s
s : char *,字符串,不包含引号
e,f,g: folat *,浮点数。
p : void *, 用 printf("%p") 输出的指针值
n : int *,写入到目前为止读入的字符数
[...]: char *,用括号中的字符集匹配输入,以找到最长的非空字符串
[^...]:char *, 用不在括号中的字符集匹配输入,以找到最长的非空字符串
% : 字面值 %,不进行赋值