符号id而不是实际符号

时间:2014-12-09 11:00:54

标签: c++ symbols

vector<vector<int>> mapVector(maxX, vector<int>(maxY));
char* mapBuffer = new char[mapString.size() + 1];
...
mapVector[i][j] = mapBuffer[y];
...

mapBuffer[i][j]包含&#39;#&#34;符号,但在&#34; mapVector[i][j] = mapBuffer[y]&#34;之后 mapVector[i][j]传输号码&#34; 35&#34;。为什么传递id而不是符号?

1 个答案:

答案 0 :(得分:-1)

以下是使用printf查看数据的方法:

#include <stdio.h>
int main (int argc, char **argv){
    char test='#';
    printf("test %c %d\n", test,test);
    return 0;

}

%c呈现为char %d呈现为int

(上面是C,但C部分将由C ++编译器编译)

因此,在您的代码中,如果将向量更改为char向量,则不会出现问题:

 vector<vector<char>> mapVector(maxX, vector<char>(maxY));
 char* mapBuffer = new char[mapString.size() + 1];
 ...
 mapVector[i][j] = mapBuffer[y];
 ...