社区
C语言
帖子详情
不理解的问题 c高手进
azazlr
2005-12-20 08:27:38
一个文件有700M,比内存还大。想把这个文件里面是'a'全部去掉。
不能把文件全部读到内存。所以先fread 100个字节到数组。
然后就不知道怎么做了。
一般是读出来,把数组的'a'去掉,再写到文件。但边读边写吗?
希望有代码看看。
...全文
436
10
打赏
收藏
不理解的问题 c高手进
一个文件有700M,比内存还大。想把这个文件里面是'a'全部去掉。 不能把文件全部读到内存。所以先fread 100个字节到数组。 然后就不知道怎么做了。 一般是读出来,把数组的'a'去掉,再写到文件。但边读边写吗? 希望有代码看看。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
庄鱼
2005-12-21
打赏
举报
回复
使用流方式可以在不用考虑内存问题。通过指针搬移的方法,虽然仅仅几兆内存,依然可以处理GB级文件。
rainharder
2005-12-20
打赏
举报
回复
mark
要是替换的字符串比原串长,有没有好的方法
顺便问问修改文件大小如何实现的
庄鱼
2005-12-20
打赏
举报
回复
如果不想建新文件的话,关键在于看你是不是想删除这个字符,还是仅仅替换掉。
如是替换的话,就在原'a'处用' '或其它控制符替代,这比较简单。删除也很容易,仅需增加2个指针即可。
定位1 = 定位2 = 0;
while(!文件尾){
定位1++;
if(当前字符!='a'){
移动到 定位2
写当前字符;
定位2++;
移动到 定位1;
}
}
修改文件大小=定位2;
关闭文件
很久没使用fopen了,有些函数用法都已经生疏了。只能写个算法思路。
terryjwf
2005-12-20
打赏
举报
回复
又见mm,偶顶!
azazlr
2005-12-20
打赏
举报
回复
fiftymetre(我手机坏了)
就不想要新建文件的方法
还有吗?
xxyifan
2005-12-20
打赏
举报
回复
自己先试试看,再来问,
呵呵!~
rbofnjtu
2005-12-20
打赏
举报
回复
fiftymetre(我手机坏了) 已经说得很清楚了,另外新建一个文件,从你要处理的文件中依次读入字符(直到读到文件尾,表示已经读完),对读入的每一个字符进行判断,如不为‘a’则依次写入到新建的文件中。
haiyan_shang
2005-12-20
打赏
举报
回复
用fseek函数实现定位,读到哪里,到下次打开读另外100个时就把光标定位到那里。
fiftymetre
2005-12-20
打赏
举报
回复
边读边写,一边用fgetc读,判断是不是a,不是的话用fputc写到另外一个文件
qimans
2005-12-20
打赏
举报
回复
700M 不能把文件全部读到内存?
________________________
你是用PC机做的吗?你把虚拟内存调大点试一下
一般机器都会支持虚拟内存的
深入
理解
C语言指针成就
高手
之路.doc
深入
理解
C语言指针成就
高手
之路.是你快速成长
高手
对C语言的深刻
理解
经过对C语言的编程的总结,比较适合初学C语言的或已学C语言的使用。
C语言
进
阶—C语言
高手
之路视频教程
C语言
高手
之路,大量C语言干货让你分分钟从小白变大牛 ! 本视频中包含的知识点: 1、标准教程中很少出现,却非常重要的知识点。 2、企业面试绝对会考察的知识点,面试轻松过关! 3、基础知识升级、加深对C语言的...
C语言教学(让菜鸟变成
高手
)
该章节对C语言
进
行了简单的概述,主要包括C语言的发展历史,C语言的特点等,让初学者在学习之前先对其有一定的了解。
C语言高级实例解析
C语言把高级语言的基本结构和语句与低级语言的实用性结合起来。C语言可以像汇编语言一样对位、字节和地址
进
行操作,...本书适合中、高级读者,学习让C语言语法的初级读者也可以通过学习本书快速成长为C语言的编程
高手
。
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章