请问,C++ 数据流,怎么从文件末尾开始读啊?
比方说,File.txt中的内容是:
12 4 5 6 8
78 90 54
先读54,再读90,之后是78,8,6,6,5,12
请高手指点
[解决办法]
正读出来放进list,反转。
倒着读,真有这个必要吗?
[解决办法]
先顺序读入,然后再逆序即可,读文件时直接逆序得麻烦死.
[解决办法]
// C下用 fseek逆序读取
#include <stdio.h>
int main(int argc,char** argv)
{
FILE* fp=NULL;
fp=fopen("Li","wb"); //创建文件
if(fp==NULL)
{
printf("create or open failed!\n");
return 1;
}
fputs("This is a Test Applicatioin",fp);
fclose(fp);
fp=fopen("Li","rb");
int i=1;
for(i=1;fseek(fp,-i,SEEK_END)==0;i++)
{
putchar(fgetc(fp));
}
printf("\n");
fclose(fp);
getchar();
return 0;
}
#include <iostream>
#include <fstream>
#include <list>
using namespace std;
int main()
{
ifstream ifs("FileName.txt");
if (ifs) {
list<int> data((istream_iterator<int>(ifs)), istream_iterator<int>());
data.reverse();
}
}