首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

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

2012-04-28 
菜鸟求教,为什么用了seek后,read读取文件的位置不对C/C++ codeQFile file(fileName)file.open(QFile::Rea

菜鸟求教,为什么用了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 (),看看返回的是什么

热点排行