将unsigned char转换为int c ++

时间:2018-04-11 22:48:03

标签: c++

我目前的代码存在一个小问题:

unsigned a[100][100];
void f(unsigned char l, unsigned char h, unsigned char n, unsigned char p[][4]){
    int i,k,t,x,y,z,m,j;
    char s;
    for (i = 0;i<h;i++) {
        a[i][0] = '|';
        a[i][l + 1] = '|';
    }
    for (i = 0;i<l+2;i++) a[h][i] = '-';
    for (i = 0;i<h;i++)
        for (int j = 1;j<l+1;j++)
            a[i][j] = '.';
    for(i=0;i<n;i++){
        //read each piece
        for(j=0;j<4;j++)
            cin>>p[i][j];
            for(m=(int)p[i][0];m<5;m++)
                for(j=3;j<5;j++)
                    a[j][m]=p[i][3];
    }
}

它不会将无符号字符p [i] [0]转换为m。

中的int

1 个答案:

答案 0 :(得分:0)

更好地使用static_cast,如下所示:

 m = static_cast<int>(p[i][0]);

也可以尝试如下: -

 m = (p[i][0]) - '0';