gpt4 book ai didi

c++ - curl 字符串追加问题,curl_formadd C++ 读取带有额外字符的变量但直接工作正常 CURLFORM_COPYNAME, "key"[?]

转载 作者:行者123 更新时间:2023-11-30 04:28:53 28 4
gpt4 key购买 nike

在 CURL post 变量中添加一个字符串

curl_formadd(&formpost,
&lastptr,
CURLFORM_COPYNAME, "submit",
CURLFORM_COPYCONTENTS, "send",
CURLFORM_END);

上面的这个工作得很好,POST 键在页面内容中带有“提交”。

但是这个:

string post = "submit";
curl_formadd(&formpost,
&lastptr,
CURLFORM_COPYNAME, &post,
CURLFORM_COPYCONTENTS, "send",
CURLFORM_END);

但是这里的结果页面内容带有一个额外的奇怪字符,如“◘ER☺submit”而不是干净的“submit”

我在这里错过了什么?谢谢!

最佳答案

你应该使用 std::string::c_str() :

string post = "submit";
curl_formadd(&formpost,
&lastptr,
CURLFORM_COPYNAME, post.c_str(),
CURLFORM_COPYCONTENTS, "send",
CURLFORM_END);

通过使用 &post ,您正在提取 std::string 的地址,这是与 const char* 完全不同的数据类型您在仅使用带引号的字符串时使用过。 std::string::c_str ,另一方面,返回 const char *实际存储字符串。

编辑:关于您的串联问题,std::string可以连接起来。因此:

std::string data = "submit";
data += " foo"; //data will be "submit foo";
std::string data2 = data + " yey"; //data2 will be "submit foo yey";

关于c++ - curl 字符串追加问题,curl_formadd C++ 读取带有额外字符的变量但直接工作正常 CURLFORM_COPYNAME, "key"[?],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9762226/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com