簡體   English   中英

printf alignment用於多個格式說明符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM