printf 格式化输出符号

格式

%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个字符正常输出。

原文地址:https://www.cnblogs.com/vczf/p/14083885.html