2011-09-23 44 views
0

我的代码:QTextStream和性病出来

QTextStream out(mFileHandle); 

out << (QTime::currentTime().toString(Qt::LocalDate) + " - ").toAscii(); 
out << "Something another"; 

std::cout << "Data: \n"; 
std::cout << out.string(); 
out.flush(); 

它写到文件,但之后“数据:”我得到“0”,为什么?如何将数据发送到两个流?

回答

0

它看起来像我从你的文件句柄构造出你的QTextStream。这意味着它将写入该文件。

QTextStream中的.string()方法仅用于访问用于构造它的QString。在这种情况下,它是零,因为你没有使用字符串来构造它。

如果要访问已写入QTextstream的所有文本,可能需要将QByteArray作为构造函数参数传递给它。这将使它将输出写入该QByteArray,而不是输出到文件。然后,您可以通过QByteArray访问写入流的内容。

+0

你能提供一个小例子,好吗?我使用'QByteArray'编写了代码,但对于'string'或'constData'方法仍然返回零。 – Ockonal

+0

您可以通过QByteArray访问写入流*的内容。 QTextStream中的.string()方法仅用于访问用于构造它的QString。由于您没有使用QString来构造它,因此它将始终返回零。您需要使用QByteArray的方法来访问输出数据。 –

0

你会做财产以后这样的:

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();