我有以下代码,我尝试将randomValue
插入到网址中。
int randomValue = qrand() % 100;
view = new QWebView(this) ;
view->load(QUrl("http://blogsearch.google.com/blogsearch?q=C&start="+randomValue+"&num=1&output=rss"));
报告了以下错误:
错误:类型'const char *'和'const char [18]'到二元'运算符+'的无效操作数
因此,我想将randomValue
附加到网址中。我该怎么做?
答案 0 :(得分:4)
使用 QString 。它比std :: string更强大,它可以直接提供你需要的东西。
QString baseurl("http://blogsearch.google.com/blogsearch?q=C&num=1&output=rss&start=%1");
view->load(QUrl(baseurl.arg(randomValue)));
有关详细信息,请参阅QString documentation。
答案 1 :(得分:2)
使用sprintf
功能。例如,请参阅here。
另一种选择是使用std::string
甚至std::ostringstream
。取决于你喜欢什么(我不知道QUrl可以采用什么类型的参数)。
char mytext[ 256 ]; // make sure the buffer is large enough!
int randomValue = 12345;
sprintf( "http://blogsearch.google.com/blogsearch?q=C&start=%d&num=1&output=rss", randomValue );
请注意您想要价值的%d 。这使得sprintf
将其替换为randomValue
的值,作为第二个参数传递。有关详细信息,请参阅上面的参考链接。
注意:您可能会考虑按照其他答案中所述的Qt方式进行操作。
答案 2 :(得分:2)
operator +
没有char*
。您应该使用C ++风格的std::string
或qt特定的QString
,它们都支持operator +
。
实际上,QString
是一个好主意,因为QUrl
在构造函数中接受它。
答案 3 :(得分:0)
使用stringstream构建字符串
std :: ostringstream oss; oss<< “http://blogsearch.google.com/blogsearch?q=C&start=”<< randomValue<< “试验#= 1&安培;输出= RSS”; 视图 - >负载(QUrl(oss.str()));
答案 4 :(得分:0)
使用
... + QString::number( randomValue ) + ...
它应该有用。
C ++(也不是QString)都没有隐含地将数字转换为字符串。