C语言格式化控制符
格式化控制符 | 含义 |
---|---|
%d | int |
%u | unsigned int |
%i | 自动进制 |
%o | 八进制 |
%x %X | 十六进制,x的大小写同输入/输出中A-F的大小写 |
%f | 浮点数 |
%e %E | 科学计数法 |
%g %G | 对于浮点数,自动选择普通方式或科学计数法方式 |
%c | char |
%s | char* |
%p | 指针的地址值 |
%n | 统计输入/输出字符的数目 |
l | 与数值型的格式化控制符搭配使用,相当于 long,%lf除外,它代表双精度浮点型数(double),如%ld,%lu,%lld,%llu |
h | 与数值型的格式化控制符搭配使用,相当于 short,如%hd,%hu,%hhd,%hhu |
# | 如%# %#X,用于附加十六进制前缀"0x" |
- | 仅用于输出,表示输出内容左对齐,如%-2d,%-4s |
+ | 仅用于数值型,当数值为正数时,前面附加正号 |
0 | 仅用于数值型,形如%0Nd,用于当实际数值宽度小于N时用0补足空缺 |
. | 用于浮点数时,后面紧跟一个整数,如果浮点数的小数部分长度大于指定的精度,则会进行四舍五入;如果小于指定的精度,则会在末尾补零以达到指定的位数。前面也可以选择性的指定一个整数,用于指定整个数字(整数和小数部分)的宽度,如%.2f %4.2f 用于字符串时,后面紧跟一个整数N,用于指定输出的字符串从首字符开始计算的N个字符,如果参数给定的字符串长度小于N,则输出全部(不会附加空白),如 %.4s |
* | 用于输入时,表示仅读入后面指定的字符,而不存入参数中,如scanf("%d%*c", &digit) 用于输出时,以参数形式指定宽度,如 printf("%.*s,%-*d", 2, "hello", 3, 0xF) 相当于printf("%.2s,%-3d", "hello", 0xF) 将输出"he,15 " |
[] | 用于输入时指定扫描集/否定集,表示读入[]中的任何一个,[]可以是单个字符,也可以是代表范围的a-z,A-Z,0-9等,如%[a-zA-Z0-9] ,成为扫描集,也可以在字符集前加’^'表示给出字符的补集,称为否定集,如%[^0-9] 表示读入非数字的任意字符,遇到数字即停止 |
空格 | 代表任意空白字符 |
当格式化控制符的精度小于参数时,编译器可能会抛出警告