尝试执行以下简单代码时,编译器向我返回错误“类型为'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;
}
仍然感谢您的阅读
这是因为没有operator+
for char*
(函数的返回类型)和const char[2]
(type "\n"
),并且由于不能为内置类型重载运算符,所以不能有。由于此问题被标记为C ++:
只需使用std::string
代替char*
,您的所有问题都已解决。std::string
将优于您尝试做的骇客。
在这里,您可以找到strings
功能概述以及如何使用它们的示例。然后,您可以连接字符串,a,b,c
例如std::string new_string = a + b + c;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句