社区
非技术类
帖子详情
用CFile 打开文件,谁有好办法让文件指针定位到倒数10行的开始位置?
luckyegg
2002-03-27 03:11:54
比如文件共有30行,我想让文件指针定位到20行处,然后开始读文件.就这个意思
...全文
90
9
打赏
收藏
用CFile 打开文件,谁有好办法让文件指针定位到倒数10行的开始位置?
比如文件共有30行,我想让文件指针定位到20行处,然后开始读文件.就这个意思
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ahao
2002-03-27
打赏
举报
回复
呵呵,我想我的方法是比较好的,
如果文件有1G呢,别说不会,有些log文件比这大多了
linux下有个叫tail的工具是做这事的吧,非常有用的工具
我没看代码,不过估计方法差不多
iamknight
2002-03-27
打赏
举报
回复
我觉得你这个问题不是很实用。
能说说你这么做所要解决的问题吗?也话,你那个问题能有一个比你采用这种处理更好的方法。
zhougaomin_007
2002-03-27
打赏
举报
回复
"to iProgram:
hehe,但是文件的总行数我不是已知的呀,要不也就很容易了."
既然如此,ReadString到文件尾,得到行数Count,再ReadString
Count -10 次不就得了
ahao
2002-03-27
打赏
举报
回复
好象文件没有向前读的方法
可以这样吧:
大约分配一块内存,比如1024bytes
读文件最后1024bytes,从后向前找10个'\n'就可以了,不够就再读1024bytes...
in_cloud
2002-03-27
打赏
举报
回复
file.seek
luckyegg
2002-03-27
打赏
举报
回复
to iProgram:
hehe,但是文件的总行数我不是已知的呀,要不也就很容易了.
luckyegg
2002-03-27
打赏
举报
回复
我只好这样了:
CFile pf;
int nlines;
pf.open()
while(fgets()!=NULL){ nlines++} //得到总行数
//这里再将指针移到开始.
if (nlines <10) {
//总行数小于10
}
else //>10
{
while(fgets()!=NULL)
{
i++;
if(i>nlines-10) break;
}
}
//这样就得到了指在倒数10行位置的文件指针
//不过,太烦了吧,谁有好的方法
zhang_qxian
2002-03-27
打赏
举报
回复
我有一个笨办法。
先将文件指针定位到文件最后,然后向前查找\n\r,到你所要求的行数,然后读取文件即可。
iProgram
2002-03-27
打赏
举报
回复
听你说的好像是文本文件,可以用CStdioFile::ReadString读一行,都10次就到了:)
C++中
文件
操作的一些函数
文件
操作有很多函数和类的实现,对于很多初学者来说知道的可能也不多.一、
文件
的打开在stdlib.h这个头
文件
里面有
FILE
类型,我们可以用它来保存打开的
文件
数据流,或者说是一个
指针
FILE
*m_p
File
; String filname("C:/abc.raw"); m_p
File
=fopen(filname.getBytes(),"r");fopen函数用来打开,第一个参数
回顾C语言
文件
里的知识
《回顾
文件
里的知识》 今天,梁哥给我们列好了苏嵌第一阶段学习规划,感觉开心中略带一点压力,开心理所当然,有了目标,有了既定的方向,就剩下一步一个脚印扎实地走下去,这是实在应该感到开心的。重点在于那一点压力。压力来源梁哥的一句话:等我给你们讲C语言,你们会发现你们以前学的C语言就和没学过一样。哈哈,我想无论谁听了这句话都会感到有压力吧。有压力才会有动力嘛,好,废话少说,我开始我今天的主题,“C语言
APUE-第三章-
文件
I/O
0.引用
文件
IO 第一天(标准IO) 1.引言 本章所说明的函数经常被称为不带缓冲的I/O(unbuffered I/0,与将在第5章中说明的标准I/O例程相对照)。术语不带缓冲指的是每个read和write都调用内核中的一个系统调用。这些不带缓冲的I/O函数不是ISO C的组成部分,但是,它们是POSIX.1和Single UNIX Specification的组成部分。 2. ...
图像处理 - 打开图片
图像世界是五彩缤纷的,首先需要介绍一下位图和调色板的概念,普通的显示器屏幕是由许许多多点构成的,我们称之为象素。显示时采用扫描的方法:电子枪每次从左到右扫描一
行
,为每个象素着色,然后从上到下这样扫描若干
行
,就扫过了一屏。为了防止闪烁,每秒要重复上述过程几十次。例如我们常说的屏幕分辨率为640×480,刷新频率为70Hz,意思是说每
行
要扫描640个象素,一共有480
行
,每秒重复扫描屏幕70次。
python发
行
版是什么意思_Python(40)常见问题:编程常见问题
编程常见问题目录编程常见问题如何创建 .pyc
文件
?如何找到当前模块名称?如何让模块相互导入?__import__('x.y.z') 返回 ; 如何获取z?当我编辑了导入过的模块并重新导入它时,这些变化没有显示出来。为什么会这样?什么是类?什么是方法?什么是 self ?如何检查对象是否为给定类或其子类的一个实例?什么是委托?如何从覆盖基类的派生类调用基类中定义的方法?如何组织代码以便...
非技术类
1,649
社区成员
58,980
社区内容
发帖
与我相关
我的任务
非技术类
VC/MFC 非技术类
复制链接
扫一扫
分享
社区描述
VC/MFC 非技术类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章