c ++错误:没有匹配的函数可调用‘std :: __ cxx11 :: basic_string :: append ((int,int)' )>>

问题描述 投票:0回答:4

尝试运行此:

// appending to string
#include <iostream>
#include <string>

int
main()
{
  std::string str;
  std::string str2 = "Writing ";
  std::string str3 = "print 10 and then 5 more";
  // used in the same order as described above:
  str.append(str2);                         // "Writing "
  str.append(str3, 6, 3);                   // "10 "
  str.append("dots are cool", 5);           // "dots "
  str.append("here: ");                     // "here: "
  str.append(10u, '.');                     // ".........."
  str.append(str3.begin() + 8, str3.end()); // " and then 5 more"
  str.append<int>(5, 0x2E);                 // "....."

  std::cout << str << '\n';
  return 0;
}

但是在str.append(5,0x2E)上有错误:

错误:没有匹配的函数可以调用‘std :: __ cxx11 :: basic_string :: append(int,int)’

使用VS Code 1.43.1,在ubuntu 19.10,gcc版本9.2.1 20191008(Ubuntu 9.2.1-9ubuntu2)上运行。

我尝试在Code :: Blocks 16.01 IDE和Windows上运行代码,但有相同的错误。

尝试运行此命令:// //附加到字符串#include #include int main(){std :: string str; std :: string str2 =“正在撰写”; std :: string str3 =“先打印10,然后...

c++ compiler-errors int append
4个回答
0
投票

您需要将0x2E(整数)转换为字符:首先char(0x2E)


0
投票

当标准模板库出现问题时,您始终可以查看所使用函数的c ++参考:http://www.cplusplus.com/reference/string/string/append/


0
投票

您只需要<int>部分。 str.append(5, 0x2E);编译正常。


0
投票

no variant中的std::string::append()带有两个整数-您应该将第二个参数设置为字符,因为is

© www.soinside.com 2019 - 2024. All rights reserved.