printf对齐

C语言中,将printf函数打印出的字符像表格一样分类对齐。%-10d表示这个字符型占10个字节,负号表示左对齐。即下面表格中的x1位置开始填充。如果是%10d,表示右对齐,即在x10位置对齐。

x1 x2 x3 x4 x5 x6 x7 x8 x9 x10
#include<stdio.h>
int main(int argc,char **argv)
{
  printf("%16s/%-10d %10s\n","1.1.1.1",24,"local ip");
  printf("%16s/%-10d %10s\n","111.111.111.111",24,"remote ip");
  return 0;     
}

运行结果

         1.1.1.1/24           local ip
 111.111.111.111/24          remote ip

 上面例子中要实现两个printf打印的字符对齐,只能让字符都右对齐。如果要两行字符左对齐。代码修改如下

#include<stdio.h>
int main(int argc,char **argv)
{
  printf("%-20s %-10s\n","1.1.1.1/24","local ip");
  printf("%-20s %-10s\n","111.111.111.111/24","remote ip");
  return 0;
}

运行结果

1.1.1.1/24           local ip  
111.111.111.111/24   remote ip 

也就是将"1.1.1.1/24"改成字符型的一个整体来排列。

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 01 02 03 04 05 06 07 08 09 10
1 . 1 . 1 . 1 / 2 4                     l o c a l   i p    
1 1 1 . 1 1 1 . 1 1 1 . 1 1 1 / 2 4     r e m o t e   i p  

 

posted @ 2016-12-30 09:51  liqinglucky  阅读(1303)  评论(0编辑  收藏  举报