我有代码:
QTextStream out(mFileHandle);
out << (QTime::currentTime().toString(Qt::LocalDate) + " - ").toAscii();
out << "Something another";
std::cout << "Data: \n";
std::cout << out.string();
out.flush();它写入文件,但是在'Data:‘之后,我得到了'0',为什么?如何将数据同时发送到两个流?
发布于 2011-09-23 14:14:04
在我看来,您的QTextStream是从文件句柄构造出来的。这意味着它将写入该文件。
QTextStream中的.string()方法只访问用来构造它的QString。在本例中,它是零,因为您没有使用字符串来构造它。
如果您希望访问已写入QTextstream的所有文本,则可能需要将QByteArray作为构造函数参数传递给它。这将使它将输出写入该QByteArray,而不是输出到文件。然后,您可以通过QByteArray访问写入流的内容。
发布于 2013-12-09 16:12:18
你会做这样的事情:
QByteArray outBytes;
QTextStream outStream(&outBytes);
//write something to outBytes via stream
outStream << (QTime::currentTime().toString(Qt::LocalDate) + " - ");
outStream << "Something another";
//construct QString from written bytes
std::cout << QString(outBytes).toStdString(); https://stackoverflow.com/questions/7524887
复制相似问题