%d:按整型数据的实际长度输出。
%md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。
%0md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以0,若大于m,则按实际位数输出。(%0md不是右补零,还是右补空格)。
⑥s格式:用来输出一个串。无法像%d那样左补零。
%s:例如:printf("%s", "CHINA")输出"CHINA"字符串(不包括双引号)
%ms:输出的字符串占m列,如果字符串本身长度大于m,则突破获m的限制,将字符串全部输出。若串长小于m,则左补空格。
%-ms:如果串长小于m,则在m列范围内,字符串向左靠,右补空格。
%m.ns:输出占m列,但只取字符串中左端n个字符(或遇到'\0'为止)。这n个字符输出在m列的右侧,左补空格。
%-m.ns:其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果n>m,则自动取n值,即保证n个字符正常输出。
%*.*s:printf("[%*.*s]", a, b, p); // p为字符串,总共输出长度为a, 取p的左边b个字符,左补零;
%-*.*s:printf("[%-*.*s]", a, b, p); // p为字符串,总共输出长度为a, 取p的左边b个字符,右补零;
⑦f格式:用来输出实数(包括单、双精度),以小数形式输出。
%f:不指定宽度,整数部分全部输出并输出6位小数。
%m.nf:输出共占m列,其中有n位小数,若数值宽度小于m左端补空格。
%-m.nf:输出共占m列,其中有n位小数,若数值宽度小于m右端补空格。