您的位置:首页 > 其它

printf输出多列时的列对齐

2012-05-25 10:03 363 查看
列左对齐

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: