如何用C语言绘制一个漂亮的ASCII表?

如何用C语言绘制一个漂亮的ASCII表?,c,ascii,C,Ascii,我想画一张像这样的桌子 ---------- | | | ---------- | | | ---------- | | | ---------- | | | ---------- 但是,它看起来又脏又丑:(。另一件让我困扰的事是每行的宽度,因为在每个框中,都包含一个数字 void draw_table( entry* ptr, int size ) { int x = 0; for( ; x < size; ++x ) {

我想画一张像这样的桌子

----------
|   |    |
----------
|   |    |
----------
|   |    |
----------
|   |    |
----------
但是,它看起来又脏又丑:(。另一件让我困扰的事是每行的宽度,因为在每个框中,都包含一个数字

void draw_table( entry* ptr, int size ) {
    int x = 0;
    for( ; x < size; ++x ) {
        printf( "_____ _____ \n" );
        printf( "| %d | %d | \n", ptr[x].virtual_page, ptr[x].page_frame );
    }
}
void draw_表(条目*ptr,整数大小){
int x=0;
对于(;x

如何将每个
“\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

printf("...%.*s...", n, "____________________________");
打印下划线。还有其他方法,但这是最简单的


就我个人而言,我会避免像这样生成ASCII表格,而是生成一些更高级别的标记,如HTML
,并使用现有的库代码将其转换为纯文本(如果需要)。

您可以使用printf中的字段宽度格式说明符使所有数字以固定宽度打印。然后,您可以轻松格式化表格e、 例如:

printf("|%8d|", 12345);
将打印:

|   12345|

查看printf的手册页(google“man printf”)了解您可以做的所有事情。它可以做一些非常强大的格式设置。

顺便说一句,也可以用加号来绘制它,如下所示:

+-----+-----+
|Head1|...  |
+-----+-----+
|     |     |
|     |     |

谢谢。这是一个简单的项目,使表格看起来漂亮是可选的,因此我仍然喜欢使用C的简单方法。顺便说一下,您可以使用
snprintf(0,0,“%d”,n)
来测量作为十进制数打印的
n
的宽度(以字符为单位)。