gpt4 book ai didi

c++ - 如何获取从 QTextStream 中读取的字节数

转载 作者:行者123 更新时间:2023-11-30 03:10:39 25 4
gpt4 key购买 nike

我使用以下代码查找从 QFile 中读取的字节数。对于某些文件,它给出了正确的文件大小,但对于某些文件,它给出了一个近似于 fileCSV.size()/2 的值。我正在发送两个文件,其中的字符数相同,但文件大小不同 link text .我应该使用其他一些对象来读取 QFile 吗?

QFile fileCSV("someFile.txt");
if ( !fileCSV.open(QIODevice::ReadOnly | QIODevice::Text))
emit errorOccurredReadingCSV(this);
QTextStream textStreamCSV( &fileCSV ); // use a text stream
int fileCSVSize = fileCSV.size());
qint64 reconstructedCSVFileSize = 0;
while ( !textStreamCSV.atEnd() )
{
QString line = textStreamCSV.readLine(); // line of text excluding '\n'
if (!line.isEmpty())
{
reconstructedCSVFileSize += line.size(); //this doesn't work always
reconstructedCSVFileSize += 2;
}
else
reconstructedCSVFileSize += 2;
}

我知道读取QString的大小是错误的,如果可以的话给我一些其他的解决方案。

谢谢。

最佳答案

我猜这是因为 QString::size() 返回了字符数。如果您的文本文件是 UTF16 格式的,比方说,x 字节长,这将对应于 x/2 个字符。

编辑:如果你想知道读取行的确切大小,你可以使用QFile::readLine()。这将返回一个 QByteArray,可以使用 size() 查询其中的字节数。

关于c++ - 如何获取从 QTextStream 中读取的字节数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2997939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com