簡體   English   中英

在linux-terminal中用c打印漂亮的表

[英]printing a pretty table in c in a linux-terminal

我已經為學生編寫了一個小型數據庫。 從終端獲取數據后,我想將此數據打印在漂亮的表中。 該表如下所示:

lastname|firstname|enrollement nr|subject|nationality. 

但是我無法打印整行數據。 這意味着如果我要打印有關一名學生的信息,則數據將分為兩行。 該表的標題不會被拆分,但是表的每一行都會被拆分。 這是代碼:

 void display_db(){
    printf("lastname|firstname|enrollement nr|subject   |nationality\n");
    printf("========================================================\n");
    int i;
    for(i=0;i<SIZE;i++){
         printf("%10s|%10s|%10d|%10s|%10s\n",           
             (db+i)->lastname,(db+i)->firstname,(db+i)->mNr,   (db+i)->subject, (db+i)->nationality);
    }
 }

這是一張圖片:

在此處輸入圖片說明

刪除特殊字符“ \\ n”后,我修改了用於打印表格的代碼。 桌子現在很漂亮。 這是代碼:

void display_db(){
printf("%10s|%10s|%10s|%30s|%10s\n","lastname","firstname","enroll. nr","subject","nationality");
printf("========================================================\n");
int i;
for(i=0;i<SIZE;i++){
printf("%10s|%10s|%10d|%30s|%10s\n",            
        (db+i)->lastname,(db+i)->firstname,(db+i)->mNr, (db+i)->subject, (db+i)->nationality);
}

}

從struct元素中刪除結尾的換行符

size_t element_len = strlen(element);
if (element_len && (element[element_len - 1] == '\n')) {
    element[--element_len] = 0; // remove trailing newline and update element_len
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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