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

时间:2014-05-08 22:46:57

标签: 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   ---   ---   ---   ---   --- ");

1 个答案:

答案 0 :(得分:1)

因此,请让所有卡片的符号都有2个空格。