当前位置: 代码迷 >> QT开发 >> 初学者求教,为什么用了seek后,read读取文件的位置不对
  详细解决方案

初学者求教,为什么用了seek后,read读取文件的位置不对

热度:77   发布时间:2016-04-25 04:51:45.0
菜鸟求教,为什么用了seek后,read读取文件的位置不对
C/C++ code
QFile file(fileName);file.open(QFile::ReadOnly|QFile::Text);QTextStream in(&file);in.seek(allCharacter * (curPage-1)); //定位文本中第i页的开始位置QString buffer = in.read(allCharacter);ui->textBrowser->setText(buffer);file.close();


这样一段内容,我打开一个txt小说,设allCharacter=300,相当于一页显示300个字符(包含了空格和段落)然后设定curPage在点击下一页后自动+1,并且主动调用这段内容,但是问题是:第一页显示了292个字符(包括空格)和8个段落,第二页却从第150个字符开始显示。。。按理来说应该是从第301个开始读的,为什么会出现这个问题呢?

------解决方案--------------------
中文的问题?1个中文=2个英文
------解决方案--------------------
我觉得楼主的做法不太合适,“一页显示300个字符”有时,这并不准确。它涉及字体的问题,半角字符的问题。所以最好想想别的办法
------解决方案--------------------
看看seek()返回的是true还是false.
检查一下是否报错,调一下方法error (),看看返回的是什么
  相关解决方案