Was ist falsch an diesem Code? (In einer Qt-Umgebung wollte ich den QTextStream verwenden, aber die resultierende -Zeichenfolge ist leer. Mit der Zeichenfolge funktioniert der Code OK. BTW: Gibt es einen bestimmten Grund, warum Qt direkt häufig verwendete Vorlagen wie Vektor und Zeichenfolge nicht unterstützt?)QTextStream bietet eine leere Zeichenfolge
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();
Mit Standard-Stream ist es viel einfacher:
ostringstream oss;
oss << DirName.c_str() << QDate::currentDate().toString("_yyyy_MM_dd.log").toStdString().c_str() << " (" << ++VolumeNumber << ")";
FileName= oss.str();
Was ist der Vorteil des Qt-Ansatzes ist?
In Bezug auf Ihre Frage ist 'QTextStream' nicht das richtige Werkzeug für das, was Sie wollen. Es geht darum, Text zu serialisieren (normalerweise in Datei), während das, was Sie wollen, leicht als ein Liner mit 'QString' auf sich selbst erreichbar ist. – Resurrection
Die 'toStdString() .c_str()' macht keinen Sinn im Kontext von 'QTextStream' btw. Sie können den 'QString', der das Ergebnis von' QDate :: currentDate(). ToString (....) 'ist, direkt pipen. – E4z9