我在 Windows x64 上使用 Eclipse 和 Visual Studio。当我通过将指针增加 1 在 Visual Studio 中打印以下字符串时,它会在 Visual Studio 中显示正确的结果。但是在 Eclipse 中,指针提前了 4 而不是 1。为什么会有这种差异?如何在eclipse中也让指针提前1?
输入字符串
[{"scaleFactor":4,"ball":{"radius":0.03999999910593033}}]
代码
unsigned char* temp = fileUtils->getFileData("levels.json", "r", &size);
wchar_t *levelData = new wchar_t[size];
size_t len_or_error = 0;
if(size > 0) {
const char* temp1 = reinterpret_cast<const char*>(temp);
len_or_error = mbstowcs(&levelData[0], &temp1[0], size);
}
for(int i = 0; i < 100; i++) {
CCLOG("i = %d | %s ", i, levelData + i);
}
输出 VS 12
i = 0 | [
i = 1 | {
i = 2 | "
i = 3 | s
i = 4 | c
i = 5 | a
i = 6 | l
输出日食
i = 0 | [{"scaleFactor":4,"ball":{"radius":0.03999999910593033}}]
i = 1 | caleFactor":4,"ball":{"radius":0.03999999910593033}}]
i = 2 | Factor":4,"ball":{"radius":0.03999999910593033}}]
i = 3 | or":4,"ball":{"radius":0.03999999910593033}}]
i = 4 | 4,"ball":{"radius":0.03999999910593033}}]
更新 忘了提到我在android设备上运行eclipse版本而不是在windows本身上。
更新2
在打印 wchar_t 之前添加了额外的代码。
CCLOG 是 cocos2d-x 的默认记录器https://github.com/cocos2d/cocos2d-x