此方法的檔案指出:
QByteArray QIODevice::readLine(qint64 maxSize = 0)
這是一個多載函式。
從設備讀取一行,但不超過 maxSize 個字符,并將結果作為位元組陣列回傳。
但是,我注意到即使我們通過了maxSize = 0,即。不要傳遞任何東西,readLine()發送行中的幾個位元組。這是一個定義明確的行為嗎?
此外,這是關于同一主題的一個十年前的問題:QIODevice::readLine(qint64 maxSize = 0) 默認引數表現不佳(應記錄在案)。這仍然相關嗎?
uj5u.com熱心網友回復:
Qt API 檔案中沒有提到它,但是將值 0 作為maxSize引數傳遞被視為具有“盡可能多的位元組”的特殊含義。這種意圖的證據可以在 Qt 的 qiodevice.cpp 源檔案的第 1466 行看到:
if (maxSize == 0) maxSize = MaxByteArraySize - 1;
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/409022.html
標籤:
