如何将这些数字放在最前面?

时间:2016-11-18 18:35:03

标签: c

此刻我有这个“画画”:

What i have

我想在顶部绘制数字,就像我在左边的字母一样。 像这样:

What I want

我该怎么做? 这是我目前的代码:

void MostrarC1(int C1[][14])
{
    char arrLetras[] = { 'A', 'B', ' ', 'C', 'D' };
    // Ciclo linhas
    printf("\n");
    for (int lin = 0; lin <= 4; lin++)
    {
        printf("%c ", arrLetras[lin]);
        fflush(stdout);

        // Ciclo colunas
        for (int col = 0; col <= 13; col++)
        {

            // lugares
            if (lin != 2)
            {
                C1[lin][col] = 0;
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE);
                printf("  ");
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN);
                printf("|");
            }
            // corredor
            else
            {
                C1[lin][col] = 0;
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_BLUE);
                printf("   ");
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN);
            }
        }
        printf("\n");
    }
    printf("\n\n");
}

1 个答案:

答案 0 :(得分:0)

我建议你使用像ncurses这样的库(在Windows中PDCurses)来显示你想要的东西。

如果您想继续使用标准输出,则需要在col + 1内打印迭代列的for,但要检查它是否在第一行。我预见的主要问题是你应该显示它们的方式之间正确的间距,因为你需要打印相同间距的数字,以便它正确匹配,解决它,我建议你使用printf的左边填充功能:

int value1 = 2;
int value2 = 12;
printf(%02d, value1) // output is 02
printf(%02d, value2) // output is 12

OBS:检查this link以查看printf的其他主要选项。