概述
用于:printf
,sprintf
格式化规定符
Turbo C2.0提供的格式化规定符如下:
符号 | 作用 |
---|---|
%d | 十进制有符号整数 |
%u | 十进制无符号整数 |
%f | 浮点数 |
%s | 字符串 |
%c | 单个字符 |
%p | 指针的值 |
%e | 指数形式的浮点数 |
%x, %X | 无符号以十六进制表示的整数 |
%0 | 无符号以八进制表示的整数 |
%g | 自动选择合适的表示法 |
说明:
- 可以在"%"和字母之间插进数字表示最大场宽。
例如: %3d
表示输出3位整型数, 不够3位右对齐
。
%9.2f
表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6,
小数点占一位, 不够9位右对齐。
%8s
表示输出8个字符的字符串, 不够8个字符右对齐
。
!!! 0x%02x
表示输出以0x
开头的2位宽度的十六进制整数,不够两位前面补0
,如0xFF
。
如果字符串的长度、或整型数位数超过说明的场宽, 将按其实际长度输出
。
但对浮点数, 若整数部分位数超过了说明的整数位宽度, 将按实际整数位输出;
若小数部分位数超过了说明的小数位宽度, 则按说明的宽度以四舍五入输出。
另外, 若想在输出值前加一些0, 就应在场宽项前加个0。
例如: %04d
表示在输出一个小于4位的数值时, 将在前面补0使其总宽度为4位
。
如果用浮点数表示字符或整型量的输出格式, 小数点后的数字代表最大宽度,
小数点前的数字代表最小宽度。
例如: %6.9s
表示显示一个长度不小于6且不大于9的字符串。若大于9, 则第9个字符以后的内容将被删除。
- 可以在"%"和字母之间加小写字母
l,
表示输出的是长型数
。
例如: %ld
表示输出long
整数
%lf
表示输出double
浮点数
- 可以控制输出左对齐或右对齐, 即在"%"和字母之间加入一个
"-"
号可说明输出为左对齐
, 否则为右对齐。
例如: %-7d
表示输出7位整数左对齐
%-10s
表示输出10个字符左对齐
可选修饰符
[F|N|h|I]为可选的输出长度修饰符,其功能如下:
F
——输出远指针存放的地址;
N
——输出近指针存放的地址;
h
——输出短整型数据的值;
l
——输出长整型或双精度型数据的值。
例如:
long
n=40000;
printf(“%8ld
n”,n);/因为200200是长整型数据*/
unsigned short value = 23;
printf(“%hu
”, value);
一些特殊规定字符
字符 | 作用 |
---|---|
n | 换行 |
f | 清屏并换页 |
r | 回车 |
t | Tab符 |
xhh | 表示一个ASCII码用16进表示,其中hh是1到2个16进制数 |
其他
字符 | 作用 |
---|---|
%hu | unsigned short |
%hhu | unsigned char |
char value_c[4];
// warning: sprintf' output between 2 and 6 bytes into a destination of size 4
sprintf(value_c,"%d",circle->value);
// circle->value is unsigned short, correct format is:
sprintf(value_c,"%hu",circle->value);
and unsigned char
which ranges exactly from 0 to 255
, using %hhu
format specifier.
用unsigned long long声明的变量,打印时输出16进制数字
typedef unsigned long long uint64_t;
uint64_t time,offset;
printf("time:%llx t offset:%llx t time:%lld t offset:%lldn", time, offset, time, offset);
最后
以上就是标致胡萝卜为你收集整理的c语言 字符串 格式化格式化规定符可选修饰符一些特殊规定字符其他的全部内容,希望文章能够帮你解决c语言 字符串 格式化格式化规定符可选修饰符一些特殊规定字符其他所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复