打印 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
干杯
我正在制作生活游戏,用户指定网格的尺寸,然后输入数据来填充网格。
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
干杯