简体   繁体   English

将未签名的char转换为int C ++

[英]Convert unsigned char to int c++

I currently have a small problem with my code: 我的代码目前有一个小问题:

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];
    }
}

It doesn't convert unsigned char p[i][0] to int in m. 它不会将无符号字符p [i] [0]转换为m中的int。

Better use static_cast like below: 最好像下面这样使用static_cast

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

Also try like below as well:- 也可以尝试如下所示:-

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM