如果使用CLion而不是直接使用gcc进行编译,则C程序的行为会有所不同。为什么?

我正在编写一个程序,以使用C90连续播放4个内容。

我使用ASCII字符为控制台创建了一个UI。

如果我使用C Lion编译程序,则会得到以下输出:

如果使用CLion而不是直接使用gcc进行编译,则C程序的行为会有所不同。为什么?

如果我使用gcc main.c对其进行编译,然后运行./a.out,则会得到以下结果:

如果使用CLion而不是直接使用gcc进行编译,则C程序的行为会有所不同。为什么?

因此,很明显,如果直接使用gcc编译该点字符,其大小将有所不同。

有人知道这怎么可能吗?

负责打印游戏行的代码如下:

void printGameLine(int line[7]) {
    int i;
    printf("┃");
    for (i = 0; i < 7; ++i) {
        printColor(line[i]);
        line[i] == 0 ? printf("    ") : printf(" ⬤ ");
        printColor(0);
        printf("┃");
    }
    printf("\n");
}

负责颜色的代码如下:(如果有区别)

/**
 * prints the color
 * @param player -1 First player,0 neutral,1 Second Player
 */
void printColor(int player) {
    switch (player) {
        case 1:
            printf("\033[0;31m"); /*red*/
            break;
        case -1:
            printf("\033[0;33m");/*yellow*/
            break;
        default:
            printf("\033[0m");/*neutral*/
            break;
    }
}
yxc130170 回答:如果使用CLion而不是直接使用gcc进行编译,则C程序的行为会有所不同。为什么?

问题是CLion控制台的字体选择。

  • 转到文件/ [设置...],然后编辑器/ [配色方案] / [控制台字体]
  • 禁用“使用控制台字体而不是默认字体”复选框
  • 选择适当的等宽字体(我使用Fira代码)

Configuration screenshot

此后,请确保在空位置和“球状”位置都使用相同长度的字符串。

本文链接:https://www.f2er.com/2932499.html

大家都在问