int main(){
char *str;
str = "CHINA";
printf("%3s,%7.2s,%.4s,%-5.3s",str,str,str,str);
return 0;
}
CHINA, CH,CHIN,CHI
%3s, 格式输出字符串,右对齐,超出3个长度的,就全部输出; %7.2s, 输出字符串占7个位置,有对齐,左补空格,输出2个字符; %.4s, 仅输出4个字符,占位4个位置,右对齐; %-5.3s: 输出3个字符,占位5个位置,左对齐右补空格。
s格式符。
用来输出一个字符串。
1,%s
2,%ms输出的字符串占m列,如果本身长度>m,则突破m的限制,将字符全部输出。若小于m,则左补空格。
3,%-ms输出的字符串占m列,如果本身长度>m,则突破m的限制,全部输出。若小于m,则左对齐,右补空格。
4,%m.ns输出占m列,但是只取字符串中左端n个字符。右对齐,左补空格。
5,%-m.ns输出占m列,但是只取字符串中左端n个字符。左对齐,右补空格。
===========================================================================================
#include<stdio.h>
int main(){
float f = 123.456;
printf("%f,%10f,%10.2f,%.2f,%-10.2f\n",f,f,f,f,f);
return 0;
}
f格式符。
用来输出实数,以小数形式输出。
1,%f不指定字段宽度,有系统自动制定,有整数部分全部输出,并输出6位小数。应注意,在输出的数字中并非全部数字都是有效数字。单精度实数有效数字一般是7位,双精度有效位数一般是16位。
2,%m.nf指定输出的数据共占m列,其中有n位小数。如果数值长度小于m,则右对齐,左补空格。
3,%-m.nf指定输出数据共占m列,其中n位小数。如果数值长度小于m,左对齐,右补空格。