首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在网格中格式化字符串和文本,以便在C中显示内聚性

在网格中格式化字符串和文本,以便在C中显示内聚性
EN

Stack Overflow用户
提问于 2016-10-22 01:55:20
回答 1查看 31关注 0票数 4

我试图用更漂亮的方式打印我的代码,但我不知道如何解决我的问题.

代码语言:javascript
复制
Protein:        Donations:0 Requests: 0
Dairy:  Donations:0 Requests: 0
Grains: Donations:0 Requests: 0
Vegetables:     Donations:0 Requests: 0
Fruits: Donations:0 Requests: 0

以下是打印语句的代码:

代码语言:javascript
复制
printf("%s:\tDonations:%d Requests: %d\n", TYPES[i], status[0][i], status[1][i]);

我想让它看起来像这样:

代码语言:javascript
复制
Protein:        Donations:0 Requests: 0
Dairy:          Donations:0 Requests: 0
Grains:         Donations:0 Requests: 0
Vegetables:     Donations:0 Requests: 0
Fruits:         Donations:0 Requests: 0

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-22 02:11:11

诀窍是打印冒号后有正确的空格数。您可以通过利用printf提供的几个特性来做到这一点:

  • printf返回它打印的字符数。
  • printf可以在最小字段宽度中左对齐文本,例如,在格式字符串"%-10s"中,减号导致文本左对齐,而数字10指定最小字段宽度为10。
  • 字段宽度可以作为变量传递,例如,printf( "%-*s", 10, "hello" )将打印"hello",后面为5个空格

综合起来,代码将如下所示:

代码语言:javascript
复制
int count = printf( "%s", TYPES[i] );
printf( "%-*s", 16-count, ":" );
printf( "Donations:%2d Requests:%2d\n", status[0][i], status[1][i] );
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40187579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档