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