3

randomValueURLに挿入しようとする次のコードがあります。

int randomValue = qrand() % 100;
view = new QWebView(this) ;

view->load(QUrl("http://blogsearch.google.com/blogsearch?q=C&start="+randomValue+"&num=1&output=rss"));

次のエラーが報告されます。

エラー:タイプ'constchar*'および'constchar[18]'の無効なオペランドからバイナリ'operator+'

randomValueそこで、 URLにを追加したいと思います。どうすればいいのですか?

4

5 に答える 5

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のドキュメントを参照してください。

于 2010-07-30T10:03:22.823 に答える
2

関数を使用しsprintfます。たとえば、ここを参照してください。

別のオプションは、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、値がrandomValue2番目のパラメーターとして渡されます。詳細については、上記の参照リンクを参照してください。

注:別の回答で説明されているように、Qtの方法でそれを行うことを検討するかもしれません。

于 2010-07-30T09:50:25.290 に答える
2

operator +はありませんchar*。C ++スタイルstd::stringまたはqt固有QStringのいずれかを使用する必要があり、どちらもをサポートしoperator +ます。

実際には、コンストラクターで受け入れるので、それはQString良い考えです。QUrl

于 2010-07-30T10:04:35.753 に答える
0

stringstreamを使用して文字列を作成します

std :: ostringstream oss; oss << " http://blogsearch.google.com/blogsearch?q=C&start= " << randomValue << "&num = 1&output = rss"; view-> load(QUrl(oss.str()));

于 2010-07-30T10:07:05.880 に答える
0

使用する

... + QString::number( randomValue ) + ...

そしてそれは動作するはずです。

C ++(またはQString)は、数値を文字列に暗黙的に変換しません。

于 2010-07-30T14:25:15.730 に答える