QIODevice::readLine()
を使用しようとしています。私は、行を読んでエラーを検出し、QStringのようにそれを操作する必要がQIODevice :: readLine()を使用する正しい方法
char buffer[SIZE];
qint64 used;
used = iodevice->readline(buffer, SIZE);
:char *に
QByteArray buffer = iodevice->readLine()
と1読み取りバッファを:QByteArray
を返す1 - 私は2つのバージョンを見てきました。
この2つのオーバーロードされたバージョンのうち、どれを単純で効率的なものにする必要がありますか?
- QByteArrayのバージョンは、読み取りエラーを検出することができないとの問題を抱えている:私がこれまで知っている何
。メモリは
=
オペレータの中で前後に割り当てられるかもしれません - char *バージョンでは読み込みエラーを検出できますが、読んだデータのサイズを制限してしまい、作業が難しくなります。
答えをありがとう、それはパフォーマンスがそれほど重要ではないことを私に気づかせました:-) ちょっとした疑問:QByteArrayを返すと、関数内では割り付けが行われますreadLine (返される前に)2つのQByteArraysが作成されている必要があります(返されるものと、readLineが返された後に値を保持する関数スコープの外のもの) – cube
答えにいくつかの詳細を追加しました。 –