如何写到wstring数组中的特定位置?

时间:2019-01-26 10:05:54

标签: c++ wstring

我有一个名为map的wstring,并且想写入该wstring数组中的特定位置。我可以从特定位置读取字符,但是除了附加到该字符串之外,我不知道该如何写。

float fPlayerX;
float fPlayerY;
int nMapWidth = 16;
int nMapHeight = 16;
bool GotO;

wstring map

map += L"################";
map += L"#G.............X";
map += L"#..............#";
map += L"#..............#";
map += L"#..............#";
map += L"#..............#";
map += L"#..............#";
map += L"#..............#";
map += L"#..............#";
map += L"#..............#";
map += L"#..............#";
map += L"#..............#";
map += L"#......O.......#";
map += L"#..............#";
map += L"#..............#";
map += L"################";

if (map.c_str()[(int)fPlayerX * nMapWidth + (int)fPlayerY] == 'O')
{
    // Pick up O
    if (GotO == false)
    { 
        // WRITE A "." TO WHERE THE O IS RIGHT NOW
    }
} 

如果我尝试

map[(int)fPlayerX * nMapWidth + (int)fPlayerY] = L".";

map[(int)fPlayerX * nMapWidth + (int)fPlayerY] = ".";

我明白了

Error   C2440   '=': cannot convert from 'const wchar_t [2]' to 'wchar_t'

1 个答案:

答案 0 :(得分:0)

您可以使用map[index] = '.',其中index是您计算出的位置。

请小心使用'而不是"!。表达式'.'的类型为char,而"."实际上表示数组{'.', '\0'}的类型为char const *