尝试运行此:
// 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
您需要将0x2E
(整数)转换为字符:首先char(0x2E)
。
当标准模板库出现问题时,您始终可以查看所使用函数的c ++参考:http://www.cplusplus.com/reference/string/string/append/
您只需要<int>
部分。 str.append(5, 0x2E);
编译正常。
no variant中的std::string::append()
带有两个整数-您应该将第二个参数设置为字符,因为is