读书人

请教C++ 数据流如何从文件末尾开始

发布时间: 2013-01-28 11:49:56 作者: rapoo

请问,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();
}
}

读书人网 >C++

热点推荐