,每个格式说明都必须用“%”开头,以一个格式字符作为结束,在此之间可以根据需要插入“宽度说明”、左对齐符号“-”、前导零符号“0"等。%。在某些系统中,可能不允许使用大写字母的格式字符,因此为了使程序具有通用性,在写程序时应尽量不用大写字母的格式字符。%和格式字符之间,可以加入长度修饰符,以保证数据输出格式的正确和对齐。对于长整型数(long)应该加l,即%ld;对于短整型数(short)可以加h,即%hd。%d,%c,%f,%e,%s,…的格式说明时,输出数据所占的宽度(域宽)由系统决定,通常按照数据本身的实际宽度输出,前后不加空格,并采用右对齐的形式。也可以用以下三种方法人为控制输出数据所占的宽度(域宽),按照使用者的意愿进行输出。(1)在%和格式字符之间插入一个整数常数来指定输出的宽度n(例如%4d,n代表整数4)。如果指定的宽度n不够,输出时将会自动突破,保证数据完整输出。如果指定的宽度n超过输出数据的实际宽度,输出时将会右对齐,左边补以空格,达到指定的宽度。(2)对于float和double类型的实数,可以用“”的形式来指定输出宽度(n1和n2分别代表一个整常数),其中n1指定输出数据的宽度(包括小数点),n2指定小数点后小数位的位数,n2也称为精度(例如%,n1代表整数12,n2代表整数4)。对于f,e或E,当输出数据的小数位多于n2位时,截去右边多余的小数,并对截去部分的第一位小数做四舍五入处理;当输出数据的小数位少于n2时,在小数的最右边补0,使得输出数据的小数部分宽度为n2。若给出的总宽度n1小于n2加上整数位数和小数点(e或E格式还要加上指数的5位),则自动突破n1的限制;反之,数字右对齐,左边补空格。也可以用“.n2”格式(例如%.6f),不指定总宽度,仅指定小数部分的输出位数,由系统自动突破,按照实际宽度输出。如果指定“”或“.0”格式(例如%%.0f),则不输出小数点和小数部分。对于g或G,宽度用来指定输出的有效数字位数。若宽度超过数字的有效数字位数,则左边自动补0;若宽度不足,则自动突破。不指定宽度,将自动按照b位有效数字输出,截去右边多余的小数,并对截去部分的第一位小数做四舍五入处理。(3)对于整型数,若输出格式是“0n1”或“.n2”格式(例如%05d或%.5d},则如果指定的宽度超过输出数据的实际宽度,输出时将会右对齐,左边补0。对于float和double类型的实数,若用“0n1”或“n2”格式输出(例如%),如果给出的总宽度n1大于n2加上整数位数和小数点(e或E格式还要加上指数的5位),则数字
printf函数中常用的格式说明 来自淘豆网m.daumloan.com转载请标明出处.