QTextStream и стандартный вывод - PullRequest
0 голосов
/ 23 сентября 2011

У меня есть код:

QTextStream out(mFileHandle);

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

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

Он записывает в файл, но после 'данных:' я получаю '0', почему?Как отправить данные в оба потока?

Ответы [ 2 ]

0 голосов
/ 09 декабря 2013

Вы бы поступили так:

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(); 
0 голосов
/ 23 сентября 2011

Мне кажется, что вы создали свой QTextStream из дескриптора файла.Это означает, что он собирается записать в этот файл.

Метод .string () в QTextStream предназначен только для доступа к QString, используемой для его создания.В этом случае он равен нулю, поскольку вы не использовали строку для его построения.

Если вы хотите получить доступ ко всему тексту, который был записан в QTextstream, вы, вероятно, хотите передать егоQByteArray в качестве аргумента конструктора.Это заставит его записывать вывод в этот QByteArray, а не в файл.Затем вы можете получить доступ к содержимому, записанному в поток через QByteArray.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...