如何用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
的宽度(以字符为单位)。