Что не так с этим кодом? (В среде Qt я хотел использовать QTextStream, но итоговая строка пуста. С строкой код работает ОК. Кстати: есть ли какая-то конкретная причина, почему 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' btw. Вы можете напрямую подключить 'QString', который является результатом' QDate :: currentDate(). ToString (....) '. – E4z9