C %m.ns 输出

来源:互联网 发布:淘宝电话卡实名认证 编辑:程序博客网 时间:2024/04/28 19:28

 

 

%m.ns中间的m.n是对%s的修饰符,
   m表示字符串显示时的最大宽度,超过的会被截掉,
      n表示显示字符串中的几个字符,
   如果n<m,则数据靠右对齐显示

%-m.ns,其它和上面一样,只是靠左对齐

%*.*s 两个星号类似通配符,它的实际值由后面的参数决定
如printf("%*.*s",m,n,"********")就等价于%m.ns

现在这段好理解了
printf("%*.*s%-*.*s/n",N,i<=N/2?i:N-i,"*******************",N,i<=N/2?i+1:N-i+1,"*******************");
将屏幕分成19+19两半,前面一半由%*.*s控制,后面一半由%-*.*s控制

当 i<=N/2时,每行输出 i+(i+1)=2i+1 个星号
当 i>N/2 时,每行输出 (N-i)+(N-i+1)=2(N-i)+1 个星号

 

转自 :http://www.oldlinux.org/oldlinux/viewthread.php?tid=9962&extra=page%3D2

原创粉丝点击