%s:例如:printf("%s", "CHINA")输出"CHINA"字符串(不包括双引号)。
%ms:输出的字符串占m列,如字符串本身长度大于m,则突破获m的限制,将字符串全部输出。若串长小于m,则左补空格。可以理解为m前为正,则字符串右对齐。
%-ms:如果串长小于m,则在m列范围内,m前为负,字符串左对齐,右补空格。
%m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。
%-m.ns:其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果n>m,则自动取n值,即保证n个字符正常输出。
例如:
#include <stdio.h>
int main(){
char *a;
a="mynameisma";
printf("%3.10s\n",a); //这里m虽然取值为3,但是n的值大于m,所以取值n,保证n个字符输出
printf("%12.3s\n",a); //输出" myn"注意,n取的是元素个数,不包括空格
return 0;
}
%f:例如:printf("%f", 12.5)输出“12.500000”浮点型数据(不包括双引号)。(%f小数点后默认保留6位小数)
%mf:输出的数据占m列,如字符串本身长度大于m,则突破获m的限制,将浮点型对象全部输出。若串长小于m,则左补空格。可以理解为m前为正,则浮点型对象右对齐。
%-mf:如果浮点型对象长小于m,则在m列范围内,m前为负,浮点型对象左对齐,右补空格。
%m.nf:输出占m列,浮点型对象保留n个小数位。
%-m.nf:其中m、n含义同上,m为输出的宽度,n为保留的小数位数,若浮点型对象长小于m,则在m列范围内,m前为负,浮点型对象左对齐,右补空格
例如:
#include <stdio.h>
int main(){
float a=12.3;
printf("%10.3f",a);
return 0;
}
输出结果为:" 12.300",注意没有双引号输出。
#include <stdio.h>
int main(){
float a=12.3;
printf("%-10.3f",a);
return 0;
}
输出结果为:"12.300 ",注意没有双引号输出。