main() {printf("%3s,%7.2s,%.4s,%-5.3s\n","CHINA","CHINA","CHINA","CHINA"); }
结果怎么是CHINA, CH,CHIN,CHI,%3s,%7.2s,%4s, %-5.3s是什么意思
CHINA, CH,CHIN,CHI,%3s, 格式输出字符串,右对齐,超出3个长度的,就全部输出;%7.2s, 输出字符串占7个位置,有对齐,左补空格,输出2个字符;%.4s, 仅输出4个字符,占位4个位置,右对齐;%-5.3s: 输出3个字符,占位5个位置,左对齐右补空格。
%ms,输出的字符串占m列,字符串长度小于m,左边补空格,如果超出则全部输出. %-ms,串小于m,则在m列范围内字符串左靠,右补空格. %m.ns,输出占m列,但只取字符串左端n个字符.这n个字符输出在m列的右边,然后左边补空格. %-m.ns,和上面的放下,就是n个字符输出在m列的左侧,右边补空格.n>m,那么m自动取n的值,既保证n个字符正常输出.
对于 %-a.bs:- 表示左对齐a 表示输出占的宽度,如果这个宽度不够,则自动扩展到足够宽度b 表示输出字符串中多少个字符,如果原字符串长于这个宽度,则截断,多余的不输出