C++二进制'operator+' 'const char*'和'const char [2]'类型的无效操作数

C++ invalid operands of types 'const char*' and 'const char [2]' to binary 'operator+'

本文关键字:char const 类型 无效 操作数 二进制 operator+ C++      更新时间:2023-10-16

我想知道这里发生了什么?请建议

我不熟悉c++,我可以这样做吗?

  char result = (msg[0] == 0) ? "OFF" : "ON";
  printf("A/C is " + result + "n");  

你应该使用:

printf("A/C is %sn", result);

您的result实际上声明了错误的类型;应该是char const *

甚至更好(正如Ed的评论中提到的),你不应该使用printf。这样做:

std::cout << "A/C is " << result << "n";

显然你不能。试试这个:

const char * result = (msg[0] == 0) ? "OFF" : "ON";
printf("A/C is %sn", result);

看起来您应该使用streams

std::cout << "A/C is " << result << std::endl;

首先,你不能简单地使用加法操作来连接c风格的字符串,其次,你应该使用std::cout输出:

std::cout << "A/C is " << result << 'n';

如果要连接字符串,至少有一个字符串必须是std::string对象