C++如何实现倒叙逐行读取txt文件?

想要实现从txt文件最后一行往第一行进行逐行读取。
假设有500行数据,每一行需要读大概200个字符,不能修改txt文件的内容。

逐行复制给一个字符串数组,然后再逆序遍历数组,这样是否可行?还有其他方法欢迎交流,只需要提供思路即可。
阅读 6.9k
3 个回答

比较方便的方法就是全部按行读出来,然后倒序处理就行了,这样做比较浪费内存

还可以把文件流指针先移动到末尾,然后利用*seek系列的函数向前移动指针来查找换行符,不过这样做效率比较渣

还有一种做法就是把文件直接映射到内存上,linux上的话有mmap可以用,win不清楚,这样做再倒序查找换行符效率比上面种效率高很多

如果知道行数n, 可以逐行正序获取, 然后倒序存入数组.(arr[n-1] = firstLine)
不知道行数, 就用你说的, 文件正序获取, 数组正序存入, 然后数组逆序

新手上路,请多包涵

不考虑效率的话递归比较方便

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题