我正在使用一个功能来下载文件。
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] 删除。
我来说两句