在数组中显示C中的项目

时间:2014-08-15 12:02:46

标签: c arrays

我有一个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值。

2 个答案:

答案 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)

电路板数组中包含的值是枚举,值为WHITEREDK_WHITEK_RED您必须使用条件语句,例如if或更好切换声明。对于if else语句的使用。 例如:

if (board[i][j] == RED)
{
printf("%s",RED_DISPLAY);
} 
else if (border[i][j] == WHITE){
....
}

预处理器中的define是字符串,因此是%s的格式说明符。但是,我建议使用switch语句,但我会让你探讨这个。