你能把特殊字符放在table中吗?

Can you put special characters in a table?

使用语言:C语言

IDE : Visual Studio 代码

OS : Linux Ubuntu 20.04

代码水平:我从九月份开始在大学学习计算机科学。

您好,我目前正在开发一款带有骰子系统的游戏,叠加层是控制台。我从这里用特殊字符抽骰子:https://fr.wikipedia.org/wiki/Wikip%C3%A9dia:Caract%C3%A8res_sp%C3%A9ciaux/Bordures(抱歉,这是法文版)。

但有时,我需要改变它们的外观。所以我创建了一个table(其实是多个,但是到处都是一样的问题),而这个table是由字符组成的。为了定义里面的内容,我放置了一个 if/else 模块,在 table.

的情况下,我只影响 ┃ 或 ┳ 等字符

问题:当我编译代码时,我有一个警告 (-Wall) 说:

warning: overflow in conversion from ‘int’ to ‘char’ changes value from ‘14849195’ to ‘-85’ [-Woverflow]

长话短说,我只想能够影响我 table 中的这些角色(我尝试使用普通角色,效果非常好)。

typedef int t_dice[5][2];
typedef char t_diceExtremite[5];
typedef char t_diceMiddle [5][2];

t_dice dice;
t_diceExtremite styleDiceTop,styleDiceBottom;
t_diceMiddle styleDiceMiddle;

for(i=0 ; i<5 ; i++){
    if(dice[i][1]==1){
        styleDiceTop[i] = '┳';
        styleDiceMiddle[i][0] = '┣';
        styleDiceMiddle[i][1] = '┫';
        styleDiceBottom[i] = '┻';
    }else{
        styleDiceTop[i] = '━';
        styleDiceMiddle[i][0] = '┃';
        styleDiceMiddle[i][1] = '┃';
        styleDiceBottom[i] = '━';
    }
}

注意:我已经写了 'int i;',并且我之前用值填充了 dice[][]。

警告消息示例(每行都相同):

/home/myname/code/SAE_1.01/yams.c:82:37: warning: multi-character character constant [-Wmultichar]
82 |             styleDiceMiddle[i][0] = '┣';
   |
/home/myname/code/SAE_1.01/yams.c:81:31: warning: overflow in conversion from ‘int’ to ‘char’ changes value from ‘842347315’ to ‘51’ [-Woverflow]

使用宽字符。

 typedef char t_diceExtremite[5]; -> typedef w_chart t_diceExtremite[5];

styleDiceMiddle[i][0] = '┣'; -> styleDiceMiddle[i][0] = L'┣';