[英]printf alignment for multiple format specifiers
如何使用printf函數對齊說下面的文本說我想要所需的輸出
void print() {
printf("%s %s %d %c\n",firstName, lastName, age, gender);
}
成為:
Foo Foo 15 M
Bob Bob 16 F
John John 12 M
我遇到的問題是因為John的名字較長,它會將下一個說明符向下推。 我想讓它們對齊,這樣每一行都是有序的。
將名字和姓氏復制到臨時字符串中。 然后傳遞到printf
,使用上一個字段寬度%s
足夠大,以適應全名用-
標志左對齊。
void print(char *first, char *last, int age, char gender)
{
int len = strlen(first) + strlen(last) + 1;
char name[len+1];
strcpy(name, first);
strcat(name, " ");
strcat(name, last);
printf("%-20s %2d %c\n",name, age, gender);
}
通過樣本輸入,輸出:
Foo Foo 15 M
Bob Bob 16 F
John John 12 M
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.