1
我正在尝试使用QIODevice::readLine()
。我已经看过了两个版本 - 一个返回QByteArray
:使用QIODevice :: readLine()的正确方法
QByteArray buffer = iodevice->readLine()
和一个读数为char *缓冲区:
char buffer[SIZE];
qint64 used;
used = iodevice->readline(buffer, SIZE);
我需要阅读的线,检测错误和操纵它的QString。
我应该使用这两个重载版本,使之简单,高效?
我所知道的,到目前为止:
- 的QByteArray中的版本有不能够检测读取错误的问题。内存可能被分配在
=
操作 - 焦炭来回*版本让我读检测错误,但它迫使我限制了数据的大小,我读,它是很难一起工作。
感谢您的答案,它让我意识到,性能不是那么重要:-) 只是一个小问题:无论如何返回QByteArray导致分配,因为内函数readLine (在返回之前)必须创建两个QByteArrays(一个将被返回,另一个在函数作用域之外,它将在readLine返回后保存该值,对吧? – cube 2012-01-01 10:29:01
我在答案中添加了一些细节。希望能回答你的问题。 – 2012-01-01 13:45:52