我有一个8x8枚举数组,包含空,红色,白色,k_red,k_white片段。该数组看起来像
for(x = 0; x < BOARDHEIGHT; x++)
{
for(y = 0; y < BOARDWIDTH; y++)
{
printf("%d |",board[x][y]);
}
printf("\n");
}
哪个打印到屏幕int值,但我希望它们显示而不是int值,实际显示定义为(例如)
#define WHITE_KING_DISPLAY "\x1b[39m" "O"
如何进行数组打印而不是int值。
答案 0 :(得分:4)
如果您的int值(即board[x][y]
中存储的值)在[0,4]
范围内,那么您可以简单地定义一个包含所需字符串的数组作为打印输出:
char const *labels[5] = { WHITE_KING_DISPLAY, ... };
然后在printf
,而不是打印board[x][y]
,打印labels[board[x][y]]
。
答案 1 :(得分:0)
电路板数组中包含的值是枚举,值为WHITE
,RED
,K_WHITE
,K_RED
您必须使用条件语句,例如if或更好切换声明。对于if else语句的使用。
例如:
if (board[i][j] == RED)
{
printf("%s",RED_DISPLAY);
}
else if (border[i][j] == WHITE){
....
}
预处理器中的define是字符串,因此是%s
的格式说明符。但是,我建议使用switch语句,但我会让你探讨这个。