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

用户1984300

我试图写这样的Fopen语句:

FILE *fp;
fp = fopen("client." + receiver->get_identifier().c_str() + ".vol", "a+");

其中receiver-> get_identifier()返回一个字符串。但是,标题出现错误。我在这里阅读了问题但是没有任何运气,因为fopen的第一个参数是const char *。我必须更改什么才能使其编译?

虚拟软件公司
receiver->get_identifier().c_str()

返回const char*,而不是std::string,因此无法插入operator+(其中一个参数必须为std::string)。删除c_str()并最后转换为std::string::c_str()应该可以解决问题

fopen(("client." + receiver->get_identifier() + ".vol").c_str(), "a+");

这是因为您将有一个const char*加号std::string,并且operator+可以使用。

如果您可能想知道为什么不能为operator+for定义for const char*,那是因为C ++不允许对基本类型进行运算符重载。至少一个参数必须是用户定义的类型。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

错误:类型为“const char [8]”和“const char [7]”的无效操作数到二进制“operator<<”

来自分类Dev

错误:类型为'const char [35]'和'const char [2]'的无效操作数为二进制'operator +'

来自分类Dev

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

来自分类Dev

'int' 和 'const char [15]' 类型的无效操作数到二进制 'operator<<' ^

来自分类Dev

将类型为'char *'和'const char [2]'的c ++无效操作数转换为二进制'operator +'

来自分类Dev

二进制“ operator <<”类型为“ double”和“ const char [5]”类型的无效操作数

来自分类Dev

二进制“ operator!=”类型为“ double”和“ const char [13]”类型的无效操作数

来自分类Dev

类型'std :: istream *'和'char'的无效操作数为二进制'operator >>'

来自分类Dev

尝试编写备份程序 (C++) 时将类型为“int(const char*)”和“const char [11]”的无效操作数转换为二进制“operator<<”

来自分类Dev

arduino,错误:“char [14]”和“char [5]”类型的无效操作数到二进制“operator+”

来自分类Dev

二进制表达式('std :: ostream'(aka'basic_ostream <char>')和'const char *')的无效操作数

来自分类Dev

无效的二进制二进制操作数('const'和'const')

来自分类Dev

无效的二进制二进制操作数('const'和'const')

来自分类Dev

无效的二进制二进制操作数(“ char(*)[36]”和“ char *”)

来自分类Dev

错误:不匹配'operator >>'(操作数类型为'std :: istream'{aka'std :: basic_istream <char>'}和'const int')|

来自分类Dev

无效的二进制二进制操作数(“ const Vector”和“ const Vector”)

来自分类Dev

错误:类型为“ double *”和“ double”的无效操作数为二进制“ operator /”

来自分类Dev

对二进制+(char *)和(char *)无效的操作数?

来自分类Dev

错误:二进制 + 的无效操作数(有 'char *' 和 'char *'),使用宏

来自分类Dev

二进制“ operator +”类型为“ int *”和“ int *”的无效操作数

来自分类Dev

二进制表达式的无效操作数(“ RadioDevice”和“ const RadioDevice”)

来自分类Dev

无效的二进制二进制操作数('ostream'(aka'basic_ostream <char>')和'Date')

来自分类Dev

'operator <<'不匹配(操作数类型为'std :: ostream'{aka'std :: basic_ostream <char>'}和'const std :: type_index')

来自分类Dev

错误:类型为'int'和'<未解析的重载函数类型>'的无效操作数为二进制'operator <<'

来自分类Dev

类型为'int'和'<未解析的重载函数类型>'的无效操作数为二进制'operator <<'

来自分类Dev

C ++错误:类型为'double'和<unresolved重载的函数类型'的操作数对二进制'operator'无效

来自分类Dev

错误:操作数类型不兼容(“ int”和“ const char *”)C ++

来自分类Dev

二进制表达式的无效操作数(“ int_node”和const“ int_node”)

来自分类Dev

二进制表达式的无效操作数(“ ostream”(又名“ basic_ostream <char>”)和“ ostream”)

Related 相关文章

  1. 1

    错误:类型为“const char [8]”和“const char [7]”的无效操作数到二进制“operator<<”

  2. 2

    错误:类型为'const char [35]'和'const char [2]'的无效操作数为二进制'operator +'

  3. 3

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

  4. 4

    'int' 和 'const char [15]' 类型的无效操作数到二进制 'operator<<' ^

  5. 5

    将类型为'char *'和'const char [2]'的c ++无效操作数转换为二进制'operator +'

  6. 6

    二进制“ operator <<”类型为“ double”和“ const char [5]”类型的无效操作数

  7. 7

    二进制“ operator!=”类型为“ double”和“ const char [13]”类型的无效操作数

  8. 8

    类型'std :: istream *'和'char'的无效操作数为二进制'operator >>'

  9. 9

    尝试编写备份程序 (C++) 时将类型为“int(const char*)”和“const char [11]”的无效操作数转换为二进制“operator<<”

  10. 10

    arduino,错误:“char [14]”和“char [5]”类型的无效操作数到二进制“operator+”

  11. 11

    二进制表达式('std :: ostream'(aka'basic_ostream <char>')和'const char *')的无效操作数

  12. 12

    无效的二进制二进制操作数('const'和'const')

  13. 13

    无效的二进制二进制操作数('const'和'const')

  14. 14

    无效的二进制二进制操作数(“ char(*)[36]”和“ char *”)

  15. 15

    错误:不匹配'operator >>'(操作数类型为'std :: istream'{aka'std :: basic_istream <char>'}和'const int')|

  16. 16

    无效的二进制二进制操作数(“ const Vector”和“ const Vector”)

  17. 17

    错误:类型为“ double *”和“ double”的无效操作数为二进制“ operator /”

  18. 18

    对二进制+(char *)和(char *)无效的操作数?

  19. 19

    错误:二进制 + 的无效操作数(有 'char *' 和 'char *'),使用宏

  20. 20

    二进制“ operator +”类型为“ int *”和“ int *”的无效操作数

  21. 21

    二进制表达式的无效操作数(“ RadioDevice”和“ const RadioDevice”)

  22. 22

    无效的二进制二进制操作数('ostream'(aka'basic_ostream <char>')和'Date')

  23. 23

    'operator <<'不匹配(操作数类型为'std :: ostream'{aka'std :: basic_ostream <char>'}和'const std :: type_index')

  24. 24

    错误:类型为'int'和'<未解析的重载函数类型>'的无效操作数为二进制'operator <<'

  25. 25

    类型为'int'和'<未解析的重载函数类型>'的无效操作数为二进制'operator <<'

  26. 26

    C ++错误:类型为'double'和<unresolved重载的函数类型'的操作数对二进制'operator'无效

  27. 27

    错误:操作数类型不兼容(“ int”和“ const char *”)C ++

  28. 28

    二进制表达式的无效操作数(“ int_node”和const“ int_node”)

  29. 29

    二进制表达式的无效操作数(“ ostream”(又名“ basic_ostream <char>”)和“ ostream”)

热门标签

归档