在网格中格式化字符串和文本,使其在C中看起来具有内聚性
我正试图使我的代码打印更漂亮一点,但我不知道如何解决我的问题在网格中格式化字符串和文本,使其在C中看起来具有内聚性,c,string,formatting,C,String,Formatting,我正试图使我的代码打印更漂亮一点,但我不知道如何解决我的问题 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 以下是打印语句的代码: printf("%s:\tDonations:%d Requ
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
以下是打印语句的代码:
printf("%s:\tDonations:%d Requests: %d\n", TYPES[i], status[0][i], status[1][i]);
我希望它看起来是这样的:
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
有什么想法吗?诀窍是在冒号后面打印正确数量的空格。您可以利用
printf
提供的几个功能来实现这一点:
返回打印的字符数printf
可以以最小字段宽度左对齐文本,例如,在格式字符串printf
中,减号使文本左对齐,数字“%-10s”
指定最小字段宽度为1010
- 字段宽度可以作为变量传递,例如,
将打印printf(“%-*s”,10,“hello”)
,后跟5个空格“hello”
int count = printf( "%s", TYPES[i] );
printf( "%-*s", 16-count, ":" );
printf( "Donations:%2d Requests:%2d\n", status[0][i], status[1][i] );