ASCII 艺术 - C/C++ 中的固定边框

ASCII art - Fixed Borders in C/C++

本文关键字:边框 C++ 艺术 ASCII      更新时间:2023-10-16

我正在尝试创建一个程序,该程序将生成一个我可以轻松更改的字符表。但是,我希望它看起来不错,所以我将使用一些 ASCII 艺术在工作表中创建边框。我想知道如何创建利用|-的边界,但是当数字发生变化时,这些边界会移动。

我想我可以使用一些功能,可以将结尾|放在它应该在的确切位置,并且在数字从 6 到 16 或 16 到 116 或单词和字母时不会移动。

如果有人知道如何做到这一点,我将不胜感激。

您可以在 printf 中使用字段宽度说明符。 对于左对齐,请添加-前缀。 例如

#include <stdio.h>
int main(void)
{
    printf( "| Greed    : %-10d |n", 6 );
    printf( "| Gluttony : %-10d |n", 16 );
    printf( "| Lust     : %-10d |n", 116 );
    return 0;
}

输出:

| Greed    : 6          |
| Gluttony : 16         |
| Lust     : 116        |

或者,您可以采用更具程序化策略的策略,正如 rici 在评论中建议的那样。 这将利用返回值(如果非负值),它告诉您写入了多少个字符。

在此处阅读有关printf及其格式说明符的更多信息:http://en.cppreference.com/w/cpp/io/c/fprintf