C ++错误:无法将'std :: basic_string <char>'转换为'const char *'

火箭

我正在使用一个功能来下载文件。

void downloadFile(const char* url, const char* fname) {
  //..
}

这叫做:

downloadFile("http://servera.com/file.txt", "/user/tmp/file.txt");

这工作正常。

但是我想将URL更改为数组中的值。数组存储了加密的值,解密后的值是字符串,所以我遇到了问题error: cannot convert ‘std::basic_string<char>’ to ‘const char*’

我试过了:

 string test = decode(foo[5]);
 const char* t1= test.c_str();
 downloadFile(t1 "filename.txt", "/user/tmp/file.txt");

downloadFile(t1 + "filename.txt", "/user/tmp/file.txt");

downloadFile((decode(foo[5]).c_str()) + "filename.txt", "/user/tmp/file.txt");

这使: error: invalid operands of types ‘const char*’ and ‘const char [17]’ to binary ‘operator+’

我究竟做错了什么 ?

谢谢

埃姆莱

C字符串不能与串联+

使用std::string::+来代替:

downloadFile((test + "filename.txt").c_str(), "/user/tmp/file.txt");

请注意,c_str仅返回指向std::string的内部字符数组的指针,因此它仅在downloadFile函数执行期间有效

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

错误:无法将'std :: basic_string <char> :: iterator ...'转换为'const char * for parameter'1'...'

错误无法将赋值中的'std :: string {aka std :: basic_string <char>}'转换为'char'-C ++

错误:请求从“const char”转换为非标量类型“std::string”{aka 'std::__cxx11::basic_string<char>'}

传递路径作为参数时,出现“错误:无法将'std :: __ cxx11 :: string * {aka std :: __ cxx11 :: basic_string <char> *}'转换为'const char *'错误

错误:无法从'std :: string * {aka std :: basic_string <char> *}'转换为'std :: string {aka std :: basic_string <char>}'||

C ++“错误:将'const std :: map <int,std :: basic_string <char>>'作为...的'this'参数传递”

无法将“std::__cxx11::string {aka std::__cxx11::basic_string<char>}”转换为“LPCSTR {aka const char*}”

错误:初始化时无法将'std :: string {aka std :: basic_string <char>}'转换为'char *'

错误:无法将'tab'从'vector <std :: vector <std :: __ cxx11 :: basic_string <char> >>'转换为'vector <std :: __ cxx11 :: basic_string <char >>

如何将std :: string转换为const char *或char *?

错误无法在赋值中将 'std::string* {aka std::basic_string<char>*}' 转换为 'node*'

无法将参数'2'的'std :: string {aka std :: basic_string <char>}'转换为'char *'到'int Save(int,char *)'

C ++ const char *转换为std :: string&

将const char **转换为std :: vector <const char *>

将 const char 转换为 std::string 作为标题

在std :: __ cxx11 :: basic_string <char,std :: char_traits <char>,...,std :: allocator <char>> const&)中获取未知的分段错误“(地址)const()const()

错误无法将“coll”(类型“std::__cxx11::list<char>”)转换为“const char&”

错误:无法将“ const char **”转换为“ const char(*)[64]”

错误:无法转换“std::__cxx11::basic_string<char>::iterator”

无法从const char *转换为const char *&

C2440:“ =”:无法从“ const char [9]”转换为“ char *”

C ++:无法从“ std :: ifstream”转换为“ char *”

C++ 将 std::string 转换为 char

如何将 const char& 转换为 const std::string&?

std :: string强制转换为const char *在std :: unordered_set <const char *>中找不到

错误 C2440:“=”:无法从“const char *”转换为“LPCWSTR”

在C ++中将char *转换为const char *

不断收到此错误:无法从 'int' 转换为 'std::__cxx11::string' {aka 'std::__cxx11::basic_string<char>'}|

如何将“ std :: vector <std :: string>”转换为“ const char * array”?