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而不是符号?
答案 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];
...