このコードで何が問題になっていますか? (Qt環境でQtextStreamを使用したかったが、 文字列が空である。コードが正常に動作する.BTW:ベクターや文字列のように直接使用されるテンプレートをQtがサポートしていないという特別な理由はありますか?標準ストリームでQTextStreamは空の文字列を提供します
QString MyFileName;
QTextStream ts;
ts << DirName.c_str()
<< QDate::currentDate().toString("_yyyy_MM_dd.log").toStdString().c_str()
<< " (" << ++VolumeNumber << ")";
ts >> MyFileName;
string FileName= MyFileName.toStdString();
それははるかに簡単です:
ostringstream oss;
oss << DirName.c_str() << QDate::currentDate().toString("_yyyy_MM_dd.log").toStdString().c_str() << " (" << ++VolumeNumber << ")";
FileName= oss.str();
Qtのアプローチの利点は何ですか?
あなたの質問に関しては、 'QTextStream'はあなたが望むもののための適切なツールではありません。これはテキストのシリアライズ(通常はファイル)ですが、あなたが望むものは 'QString'を使ってライナーとして簡単に達成できます。 – Resurrection
'toStdString()。c_str()'は 'QTextStream'の文脈では意味を持ちません。 'QDate :: currentDate()。toString(....)'の結果である 'QString'を直接パイプすることができます。 – E4z9