您的位置:首页 > 其它

printf输出多列时的列对齐

2017-06-09 12:59 1841 查看
列左对齐

printf("%-*s", 20, string); 表示输出字符串左对齐输出20,如果字符串不够20个,以空格补齐。 -表示左对齐。

例:

struct help_struct

{
char *option_name;
char *option_value;
char *option_ext;

};

struct help_struct options[] =

{
{"set_node_id","node_id",
"set the node id"},
{"set_debug_level","debug_level",
"4:DEBUG 3:INFO 2:WARNING 1:ERR 0:NESS"},
{"flush_pool","pool_name",
""},
{"get_lu_count","",
""},
{"check_pools","pool_name",
""},
{"invalid_pool","pool_name",
""},
{"set_mirror","mirror_state",
"0:disable 1:enable"},
{(char*)NULL,
 (char*)NULL, (char*)NULL}

};

static void show_usage(const char *execname)

{
struct help_struct *opt = NULL;
printf("Usage: %s [options] ...\n", execname);
printf("Options:\n");
for(opt = options; opt->option_name; opt++)
{
printf("  --");
printf("%-*s",25, opt->option_name);
printf("%-*s",20, opt->option_value);
printf("%-*s",50, opt->option_ext);
printf("\n");
}

}

show_usage输出结果为:

Usage: ./vicm_test [options] ...

Options:

  --set_node_id              node_id             set the node id                                   

  --set_debug_level       debug_level      4:DEBUG 3:INFO 2:WARNING 1:ERR 0:NESS             

  --flush_pool                  pool_name                                                             

  --get_lu_count                                                                                   

  --check_pools              pool_name                                                             

  --invalid_pool               pool_name                                                             

  --set_mirror                  mirror_state       0:disable 1:enable  

2. 右对齐

printf("%*s", 20, string); 表示输出字符串右对齐输出20,如果字符串不够20个,以空格补齐。 没有-表示右对齐。

例:

static void show_usage(const char *execname)

{
struct help_struct *opt = NULL;
printf("Usage: %s [options] ...\n", execname);
printf("Options:\n");
for(opt = options; opt->option_name; opt++)
{
printf("  --");
printf("%*s",25, opt->option_name);
printf("%*s",20, opt->option_value);
printf("%*s",50, opt->option_ext);
printf("\n");
}

}

show_usage输出结果为:

Usage: ./vicm_test [options] ...

Options:

  --                 set_node_id                 node_id                                                                    set the node id

  --          set_debug_level          debug_level             4:DEBUG 3:INFO 2:WARNING 1:ERR 0:NESS

  --                     flush_pool            pool_name                                                  

  --                 get_lu_count                                                                      

  --                  check_pools           pool_name                                                  

  --                   invalid_pool            pool_name                                                  

  --                      set_mirror           mirror_state                                                           0:disable 1:enable
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: