C语言 显示输出时创建表格显示

x3naxklr  于 2023-05-28  发布在  其他
关注(0)|答案(1)|浏览(199)

我想创建一个表格显示,有一个名称,身份证,课程年份和平均成绩,并有间距的名称和课程是基于最长的名称和课程有
我尝试使用对齐说明符,但是很难假设每次运行程序时可用的最长名称都相同

kqlmhetl

kqlmhetl1#

你需要遍历你的数据来计算出每一列的宽度:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX(a, b) (a) >= (b) ? (a) : (b)

int main() {
    char *data[] = {"what", "is", "the", "secret?" };
    size_t w = 0;
    for(size_t i = 0; i < sizeof data / sizeof *data; i++) {
        size_t tmp = strlen(data[i]);
        w = MAX(w, tmp);
    }
    for(size_t i = 0; i < sizeof data / sizeof *data; i++)
        printf("| %*s |\n", (int) w, data[i]);
}

下面是相应的输出:

|    what |
|      is |
|     the |
| secret? |

相关问题