格式
%a 浮点数、十六进制数字和p-记数法(c99 %A 浮点数、十六进制数字和p-记法(c99) %c 一个字符(char) %C 一个ISO宽字符 %d 有符号十进制整数(int)(%ld、%Ld:长整型数据(long),%hd:输出短整形。) %e 浮点数、e-记数法 %E 浮点数、E-记数法 %f 单精度浮点数(默认float)、十进制记数法(%.nf 这里n表示精确到小数位后n位.十进制计数) %g 根据数值不同自动选择%f或%e. %G 根据数值不同自动选择%f或%e. %i 有符号十进制数(与%d相同) %o 无符号八进制整数 %p 指针 %s 对应字符串char*(%s = %hs = %hS 输出 窄字符) %S 对应宽字符串WCAHR*(%ws = %S 输出宽字符串) %u 无符号十进制整数(unsigned int) %x 使用十六进制数字0xf的无符号十六进制整数 %X 使用十六进制数字0xf的无符号十六进制整数 %% 打印一个百分号 %I64d 用于INT64 或者 long long %I64u 用于UINT64 或者 unsigned long long %I64x 用于64位16进制数据
%m.n : m指域宽,即对应的输出项在输出设备上所占的字符数。n指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。
l 对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。
格式字符
格式字符用以指定输出项的数据类型和输出格式。
d格式:用来输出十进制整数。有以下几种用法:
- %d:按整型数据的实际长度输出。
- %md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出
x格式:以无符号十六进制形式输出整数。对长整型可以用"%lx"格式输出。同样也可以指定字段宽度用"%mx"格式输出。
- %02x:02 表示不足两位,前面补0输出;如果超过两位,则实际输出。
printf("%02X", 0x345); // 打印出:345; printf("%02X", 0x6); // 打印出:06
- %2x:数据不足两位时,实际输出,即不额外补0输出; 如果超过两位,则实际输出。
printf("%2X", 0x345); // 打印出:345 printf("%2X", 0x6); // 打印出:6
s格式:用来输出一个串。有几中用法
%s:例如:printf("%s", "CHINA")输出"CHINA"字符串(不包括双引号)
%ms:输出的字符串占m列,如果字符串本身长度大于m,则突破获m的限制,将字符串全部输出。若串长小于m,则左补空格。
%-ms:如果串长小于m,则在m列范围内,字符串向左靠,右补空格。
%m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。
%-m.ns:其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果n>m,则自动取n值,即保证n个字符正常输出。