我正在制作十五人游戏,从而实现在终端上打印棋盘的绘图功能。我的功能如下:
void draw(void)
{
for(int i=0;i<d;i++)
{
for(int j=0;j<d;j++)
{
if (board[i][j] != 0)
{
printf("%2d ", board[i][j]);
}
else
{
printf(" _ ");
}
}
printf("\n");
}
}
它对于 3X3 以内的电路板工作正常,但对于 4X4 的电路板它会打印出以下内容:
在第二行的第二列中,它打印 1,而我希望它打印 10。
最佳答案
您可以找出单元格编号的最大长度,并使用它来格式化 printf
。
char numstr[20];
int maxlen = sprintf(numstr, "%d", d * d - 1);
...
printf("%*d ", maxlen, board[i][j]);
...
printf("%*c ", maxlen, '_');
关于c - 打印下划线字符来代替整数 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41076544/