QT如何倒序读取txt文件并输出到另一个txt文件?
QT如何倒序读取txt文件并输出到另一个txt文件?
QT如何倒序读取txt文件并输出到另一个txt文件?
QT倒序读取txt文件
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 赵4老师 2022-12-16 13:53关注
仅供参考:
#include <stdio.h> #include <io.h> #include <fcntl.h> #include <share.h> #include <conio.h> int fh; int c,r; __int64 offset,offset1,i64,n64,l64,r64; char ln[16000+1]; int main(int argc,char **argv) { if (argc<2) { fprintf(stderr,"Usage:%s filename.txt [10]\nto reverse lines of file [default the last 10 lines,-1 for all lines].\n",argv[0]); return 1; } if (argc==2) n64=10i64; if (argc>2) sscanf(argv[2],"%I64d",&n64); fh=_sopen(argv[1],_O_BINARY|_O_RDONLY|_O_RANDOM,_SH_DENYNO); if (-1==fh) { fprintf(stderr,"Can not _sopen file %s!\n",argv[1]); return 2; } l64=_filelengthi64(fh);if (l64==0i64) {_close(fh);return 0;} offset=l64; offset1=_lseeki64(fh,-1i64,SEEK_END); if (offset1==-1i64) {_close(fh);return 3;} i64=0i64; while (1) { if (_read(fh,&c,1)<1) break;// if (('\n'==c && offset1<l64-1i64) || offset1==0i64) { if (offset1!=0i64) offset1++; if (_lseeki64(fh,offset1,SEEK_SET)==-1i64) break;// r64=offset-offset1; if (r64<=16000i64) { r=_read(fh,ln,(unsigned int)r64); if (r<=0) break;// } else { r=16000; while (1) { if (r64>(__int64)r) { r64-=(__int64)r; if (1i64==r64 || 2i64==r64) { r=8000; r64+=(__int64)r; } } else { r=(int)r64; r64=0i64; } r=_read(fh,ln,r); if (r<=0) break;// if (0i64==r64) break;// ln[r]=0; printf("%s",ln); r=16000; } if (r<=0) break;// } ln[r]=0; if (r>=2 && ln[r-1]=='\n' && ln[r-2]=='\r') {ln[r-2]='\n';ln[r-1]=0;r--;}//避免输出重定向到文件时行尾多出'\r' if (i64==0I64) { if ('\n'!=ln[r-1]) printf("%s\n",ln); else printf("%s",ln); } else { printf("%s",ln); } i64++; if ((i64%10000)==0) cprintf("\r%I64d/%I64d",offset1,l64); if (n64>0i64 && i64>=n64) break;// offset=offset1; _lseeki64(fh,offset1-2i64,SEEK_SET); offset1-=2i64; } else { _lseeki64(fh,-2i64,SEEK_CUR); offset1--; } } _close(fh); return 0; }
解决 无用评论 打赏 举报
悬赏问题
- ¥15 ecplise在连接数据库时显示加载驱动成功但是数据库连接失败
- ¥15 visionmaster启动失败,提示为“机器不满足授权而被禁用”
- ¥50 用logisim设计16位单时钟周期cpu
- ¥15 IDEA中圈复杂度如何具体设置
- ¥50 labview采集不了数据
- ¥15 Multisim红外倒车雷达仿真中距离问题
- ¥15 请上面代码做什么处理或什么混淆
- ¥15 英雄联盟自定义房间置顶
- ¥15 W5500网线插上无反应
- ¥15 如何用字典的Key,显示在WPF的xaml中