开始以为是这样
HHHH\%DDDD
后来发现不对。
经过高人指点 是%%这样才能符合。
谨记。
http://kunwang2001.blog.hexun.com/26258008_d.html 一篇参考文档
c/c++的字符串格式化问题,常常会困扰人,只要做个集中整理,以便今后查看。
格式化值:
%% -返回百分号
%b –返回二进制数
%c –返回与ASCII值相对应的字符
%d –带有正负号的十进制数
%e –科学计数符号(如:1.2e+2)
%u –不带正负号的十进制数.%ul 不带符号的长整型
%f – 浮点数据(本地设置)
%F –浮点数据(非本地设置)
%o –八进制数
%s –字符串
%x –十六进制数(小写字母) 例如:sprintf(s, "%#010x", 128); //产生"0x00000080"
%X –十六进制数(大写字母)
对于数字,还有涉及对齐及宽度的问题:
它是位于%和字母之间的(如:%.2f)表示小数点后2位 例如:printf("%.2f",3.145) 输出3.14
在数字前加上+和-;默认情况下,只有负数是被标记出来的
左调整变量值m.n
浮点数:m表示小数点前的位数,n表示小数点后的位数,在m前可以添加不足位数的补位字符。
例如:pritnf("%2.3f",12.2);输出:12.30
例如:printf("%04d,1); 输出:0001
字符串:在"%m.ns"中,这可以类比打印浮点数的"%m.nf",m 表示占用宽度(字符串长度不足时补空格,超出了则按照实际宽度打印),n 才表示从相应的字符串中最多取用的字符数。通常在打印字符串时m 没什么大用,还是点号后面的n 用的多。自然,也可以前后都只取部分字符.