QByteArray 因为有/n导致后边的字节读不出来怎么办?
时间: 2024-01-15 20:04:53 浏览: 75
如果QByteArray中包含了换行符(\n),那么在读取时可能会导致读取不完整。您可以使用QByteArray的`data()`函数获取指向字节数组的指针,然后使用`QByteArray::size()`函数获取字节数组的长度,遍历字节数组并将换行符去除,最后将处理后的数据保存到另一个QByteArray或char*数组中。
以下是一个示例代码:
```c++
QByteArray sourceData; // 假设这是包含换行符的源数据
char* dataPtr = sourceData.data(); // 获取指向源数据的指针
int dataSize = sourceData.size(); // 获取源数据的长度
QByteArray processedData; // 用于保存处理后的数据
for (int i = 0; i < dataSize; i++) {
if (dataPtr[i] != '\n') { // 如果当前字符不是换行符,则将其保存到processedData中
processedData.append(dataPtr[i]);
}
}
char* processedDataPtr = processedData.data(); // 获取指向处理后数据的指针
int processedDataSize = processedData.size(); // 获取处理后数据的长度
```
在上述代码中,我们使用了`QByteArray`的`append()`函数将处理后的数据保存到了`processedData`中,并且获取了指向处理后数据的指针。如果您需要使用`char*`数组来保存处理后的数据,可以将`processedData`中的数据复制到一个`char*`数组中,方式与复制到另一个`QByteArray`类似。
阅读全文