printf输出多列时的列对齐

  1. 列左对齐

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

    原文作者:龙图腾
    原文地址: https://blog.csdn.net/dragon101788/article/details/72956487
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞