【发布时间】:2016-02-11 16:23:54
【问题描述】:
这是对my question yesterday的跟进。
我正在使用一个函数来下载文件:
void downloadFile(const char* url, const char* fname, const char* id ) {
//..
}
这被称为:
downloadFile("http://servera.com/file.txt", "/user/tmp/file.txt", "/home/user/Download/xxxx");
如图所示,这适用于固定的 id,但我需要将 xxxx 替换为随机数:
srand(time(NULL));
int rdn = rand();
如果我尝试:
downloadFile("http://servera.com/file.txt", "/user/tmp/file.txt", "/home/user/Download/" + rdn);
我明白了
error: invalid conversion from ‘int’ to ‘const char*’ [-fpermissive]
那么如何将rdn 附加到字符串"/home/user/Download/" 中呢?比如rdm == 123456789,我想把"/home/user/Download/123456789"传给函数。
【问题讨论】:
-
有
sprintf,但请使用std::string/std::to_string。 -
您希望通过
"/home/user/Download/" + rdn实现什么目标??? -
我对不赞成票特别是接近票感到非常困惑。对我来说,这似乎是一个程序员,他的背景是你可以使用
+将事物连接到一个字符串,例如在 Java 中。 @barakmanos 我很确定他正在尝试将数字(作为字符串)连接到前缀。 -
@Rocket 如您所见,您的意图对每个人来说都不是很清楚。因此,即使您的问题具有一些非常好的属性,例如相关代码 sn-ps 和您看到的错误,但由于无法弄清楚您的意图,人们还是相当不屑一顾。我建议在这个问题和将来更清楚地说明这一点。
-
感谢@Rocket 的编辑。不幸的是,许多 SO 用户对不是 100% 符合规范的问题非常不耐烦。在他们的辩护中,大多数关于我们对问题的期望的规则都是经过深思熟虑、尝试和证明的。但是,对于具有 PHP 背景的人来说,您破坏代码的意图可能非常明显,所以我理解您为什么不包含它。重点是,不要因为以后发帖而气馁。