C printf格式化

C printf formatting

我有以下功能可以打印借书人借出的图书清单。

void searchBorrowerLoans(int a) {   
            int i;
            for (i = 1 ; i < MAX_BOOKS ; i++) {                 
                if (loanlog[i].borrowerid == a) {
                    NEWLINE;
                    printf("Borrower ID : %i <--Borrowing-> Book ID's : %i\n", loanlog[i].borrowerid, loanlog[i].bookid);
                }
            }
        }

我希望能够像这样格式化结果

 Borrower ID : 5 <---Borrowing---> Book ID's : 5, 3 , 2

而不是(新行)-

 Borrower ID : 10 <--Borrowing-> Book ID's : 5

 Borrower ID : 10 <--Borrowing-> Book ID's : 7

 Borrower ID : 10 <--Borrowing-> Book ID's : 8

 Borrower ID : 10 <--Borrowing-> Book ID's : 9

我不知道NEWLINE是什么,但没必要知道,就这样吧

printf("Borrower ID : %d <--Borrowing-> Book ID's :", a);
for (i = 0 ; i < MAX_BOOKS ; ++i)
 {
    if (loanlog[i].borrowerid == a)
        printf("%d, ", loanlog[i].bookid);
 }
printf("\n");

请注意,我将循环固定为从 i = 0 开始,因为在 c 中通常这是正确的,因为数组是从 0 而非 1.

索引的

您将不得不处理图书 ID 列表末尾的额外 ,