c++ - 如何在 C++ 中为卡片制作 ASCII 边框并制作 10 不移动它们

标签 c++ c

我的问题是:如何在我的扑克代码中为纸牌制作 ASCII 边框?一切正常,直到 10 号出现。所有其他卡片“12345678910JQKA”包含 1 个符号,但 10 个包含 2 个,因此它移动了我的 ASCII 边框。

代码如下:

printf ("\n\nYour cards are:\n");
    printf ("   ___   ___   ___   ___   ___\n");
    printf ("  |%s  | |%s  | |%s  | |%s  | |%s  | \n", pack[0].value, pack[1].value, pack[2].value, pack[3].value, pack[4].value);
    printf ("  | %s | | %s | | %s | | %s | | %s | ", pack[0].suit, pack[1].suit, pack[2].suit, pack[3].suit, pack[4].suit );
    printf ("\n  |  %s| |  %s| |  %s| |  %s| |  %s| ", pack[0].value, pack[1].value, pack[2].value, pack[3].value, pack[4].value);
printf ("\n   ---   ---   ---   ---   --- ");

好的找到答案了。 上面的数字是 %-2s,所以 - 让他们仍然留在左边,下面的数字是 %2s。

printf ("\n\nYour cards are:\n");
    printf ("   ___   ___   ___   ___   ___\n");
    printf ("  |%-2s | |%-2s | |%-2s | |%-2s | |%-2s | \n", pack[0].value, pack[1].value, pack[2].value, pack[3].value, pack[4].value);
    printf ("  | %s | | %s | | %s | | %s | | %s | ", pack[0].suit, pack[1].suit, pack[2].suit, pack[3].suit, pack[4].suit );
    printf ("\n  | %2s| | %2s| | %2s| | %2s| | %2s| ", pack[0].value, pack[1].value, pack[2].value, pack[3].value, pack[4].value);
printf ("\n   ---   ---   ---   ---   --- ");

最佳答案

所以让你所有的卡片都有 2 个空格来放置它们的符号。

关于c++ - 如何在 C++ 中为卡片制作 ASCII 边框并制作 10 不移动它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23557153/

相关文章:

c++ - 复制结构时出现 System.AccessViolationException

c++ - 如何制作一个哈希键来匹配/比较类似文本/html 的哈希?

c - 从文件中读取一行并打印

C++ variadic templates fold expression 收藏

c++ - 在 C++ 或程序集 (FASM) 中将原始字节转换为十六进制

c - 我如何在 Pascal 中用 C 编写这一行?

c++ - C 中的文件处理读取多个字符

C 多维数组 : Am I missing something?

c++ - 为什么我的程序在我的 CPU 设备上运行速度明显快于我的 GPU 设备?

c++ - 在将它交换到 coco2dx 中的另一个之后,如何将 Sprite 恢复为原始图像?