打印 2D 字符数组 - 最后输入被切断

Printing a 2D Character Array - Last input cut off

我正在制作生活游戏,用户指定网格的尺寸,然后输入数据来填充网格。

X=直播

。 = 死亡

我当前代码的问题是,如果用户说想要 3x3 网格(9 个值),则在打印网格时会输出 8 个。我试过将条件更改为 <=,或以 -1 开始循环,但这似乎不起作用

我已经使用了在其他帖子中看到的循环,例如:Printing a 2D array in C 但问题仍然存在。

代码如下:

int WIDTH, HEIGHT, CYCLES;
scanf("%d %d %d",&WIDTH,&HEIGHT,&CYCLES);

//Grids
char grid[HEIGHT][WIDTH];
char temp[HEIGHT][WIDTH];

//Columns + Rows
for (int row = 0; row <HEIGHT ; ++row)
{
    for (int col = 0; col <WIDTH ; ++col)
    {
        scanf("%c",&grid[row][col]);
    }
}

for (int row = 0; row <HEIGHT ; ++row)
{
    for (int col = 0; col <WIDTH ; ++col)
    {
        printf("%c",grid[row][col]);
    }
}

感谢任何帮助

改变

scanf("%c",&grid[row][col]);

scanf(" %c",&grid[row][col]);

在 %c 之前添加 Space 解决了这个问题。为@WhozCraig

干杯