c++读取文件最后一个数据

有一个txt文件,我想用c++读取文件最后一个数据用来判断,求大神指教;... 有一个txt文件,我想用c++读取文件最后一个数据用来判断,求大神指教; 展开
 我来答
百度网友2416aca46
推荐于2017-09-24 · TA获得超过1662个赞
知道小有建树答主
回答量:544
采纳率:0%
帮助的人:375万
展开全部
不知道你最后一个数据是什么类型的。
由你自己定义最后一个数据,这里假设它的类型为T(可以为整形,浮点型,结构体等等任意,只要你自己在读写的时候统一,自己能够识别就行)。给你个C语言的代码片段:
FILE* pf = fopen("test.txt","r"); //注意这里是以文本方式打开的
fseek(pf,-sizeof(T),SEEK_END); //将文件指针移动到距文件末尾sizeof(T)的位置处,这样读取的时候就可以直接从T也就是你定义的所谓最后一个数据开始读取。
fread(buff,sizeof(T),1,pf); //buff是你事先定义的一个缓冲区,确保它能够容纳你定义的T。
追问
我用的是c++,最后一个是整形
追答
那你把sizeof(T)换成sizeof(int)吧。
C++的我也不常用,你可以在网上搜一下ifstream和ofstream嘛,你看一下具体的语法规则,我上面的回答是给你一个思路,你可以参考参考,这样学习才能进步。另外有个温馨提示,就是读写文件的时候要用同一种方式访问即要么都文本方式要么都二进制方式,这样才能保证你读到的数据就是你当初写入的数据。
adoqq_bd
2012-09-04 · TA获得超过7050个赞
知道大有可为答主
回答量:1818
采纳率:63%
帮助的人:1619万
展开全部
//因为你的文件是个文本,所以不好用sizeof(类型)得出数据占用空间大小,只好一个一个往回退然后判断了
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream in;
in.open("d:\\111.txt");
int n;
int len=-1;
char ch,f=0;
in.seekg(0,ios::end);
int fsize=in.tellg();
while(1)
{
in.seekg(len,ios::end);
if(-len==fsize)
{
in>>n;
break;
}
in.get(ch);
if(f==0)
{
if(!(ch==' '||ch=='\n')) //这一段用来跳过结尾可能存在的无效空格和换行
f=1;
}
else
{
if((ch==' '||ch=='\n'))
{
in>>n;
break;
}
}
len--;
}
in.close();
cout<<n<<endl;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6205bc1
2012-09-04 · TA获得超过6004个赞
知道大有可为答主
回答量:5933
采纳率:20%
帮助的人:2770万
展开全部
C++的操作忘记了,
C可以fseek到文件末,然后再去读取,查下函数用法就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zyplsok
2012-09-04 · TA获得超过155个赞
知道答主
回答量:91
采纳率:0%
帮助的人:101万
展开全部
你要读取的数据是最后一个字节?最后一个数字?最后一个字符串?还是某个数据结构
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式