我有一個小的C代碼片段,如下圖所示:打印在包的升序輸出數
static void results(void)
{
int id;
uint64_t packets, bytes;
packets = 0;
bytes = 0;
if (x->option)
{
printf("\n App Packets Bytes");
printf("\n --------------------------------\n");
}
for (id = 0; id < x->config_num_proto; id++)
{
if (x->option)
{
if (x->packets)
{
printf(" %-12s%-12" PRIu64 "%" PRIu64 "\n", x->name
, x->packets, x->bytes);
}
}
packets += x->packets;
bytes += x->bytes;
}
printf("\n")
}
輸出看起來象下面這樣:
App Packets Bytes
AB 312 44922
CD 5 863
EF 18 2160
GH 9 574
.. .. ..
.. .. ..
我的目標是打印出來除了數據包以相同的方式輸出應該按升序排列。我對C相當陌生,所以無法想到一些棘手的問題,可以給我想要的結果。任何建議將不勝感激。
一個簡單的方法是將所有'x's'放入數組中並調用'bsearch()'將它們排序。但是你的例子中缺少太多的東西來提供詳細的答案。 – chux
糟糕 - 我的意思是說'qsort()'不''bsearch()'。晚了。對不起 – chux