最近写的一个qt的代码,需要对读取文件的最后一行数据进行数据处理,但出现了一个很尴尬的事情,我采用的方法是标志位++,然后在对其--,直到等于0时,才让他读取出来。但这么操作下来,变成了放慢读取数据的速度了。而且还是从第一行开始读取的,我就很郁闷了。
运行结果:
完全没有必要啊,将QByteArray line定义到while外面就可以啦,当while不满足时,line就是最后一行的内容,然后再QString str(line)就是最后一行字符串
你这前一个while循环已经一行一行的把数据读出来了,那还要后一个循环干什么,直接把最后一行的结果保存到变量里不就得了吗
你想直接读取最后一行,那你的文件头必须有一个标志位,表示文件一共有多少行,比如500吧
然后你读第一行,读出500,然后把指针挪到500行,直接读出来,这样才能节省时间
你都读出来然后判断是不是文件结尾,这不是脱裤子放屁吗
QString line;
while(!file.atEnd()) {
line = file.readLine();
// 对每行做处理
}
QString endLine = line;
// 对最后一行做处理