【发布时间】:2014-09-30 15:46:05
【问题描述】:
编译器在尝试执行此简单代码时返回错误“'char*' 和 'const char [2]' 类型的无效操作数到二进制 'operator+'”:
BodyText[client] = PS3::ReadString(0x0178646c) + "\n" ;
这里是我的 ReadString() 函数:
char returnRead[100];
char* ReadString(int address)
{
memset(&returnRead[0], 0, sizeof(returnRead));
int strlength = 100;
char* StrBytes = ReadBytes(address, strlength);
for (int i = 0; i < strlength; i++)
{
if (StrBytes[i] != 0x00)
returnRead[i] = StrBytes[i];
else
break;
}
return returnRead;
}
感谢阅读
【问题讨论】:
-
您不能将 C 风格的字符串与
+连接起来。使用std::string。 -
这不是一个坏问题,字符串在 C++ 中并不容易/直观。
-
@MichaelJones 真正的字符串是。只有使用 C++ 作为 C 类的人会遇到这样的问题。 (好吧,如果你必须实现你的标准库,但这是世界范围内的几个人。)
-
解决了这个问题:std::string x = PS3::ReadString(0x0178646c) + "\n" + PS3::ReadString(0x178BC74) + "\n" + PS3::ReadString(0x179147C ) + "\n" + PS3::ReadString(0x1796C84) + "\n" 对不起我的愚蠢
标签: c++ visual-studio-2010 char constants