全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

利用C++如何覆盖或删除指定位置的文件内容

前言

最近在工作中遇到一个问题,需要覆盖或者删除指定位置的文件内容,发现网上这方面的资料较少,无奈只能自己解决,下面将自己解决的方法分享给大家,方便大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

一、覆盖指定位置的文件内容

我们经常使用ofstream或者fstream可写文件,使用ifstream可以写文件,但需要设置文件的打开状态为iOS::out。C++中IO流打开模式使用位掩码来表示。

IO流打开模式有:

成员常量
app append,追加模式,设置流指针在每一个操作前均指向文件流末尾
ate at end,设置流指针在打开时指向文件流末尾
binary 以二进制模式开打文件流
in input,输入模式,允许读取文件流
out output,输出模式,允许写入文件流
trunc truncate,截断模式,打开文件流时清空所有内容

些常数在ios_base类定义为public成员。因此,可以直接以类名字加作用域运算符访问(如ios_base::out),或使用ios_base的任何继承类或实例化的对象,例如ios::outcout.out

ofstream在打开文件时默认清空文件所有内容。如果使用ios::app来打开文件,虽然不会清空文件内容,但是每次写操作都追加到文件末尾。

int main(){
 fstream fout;
 fout.open("hello.txt",fstream::binary | fstream::out | fstream::app);
 pos=fout.tellp();
 fout.seekp(-5,ios::end);
 fout.write("####",4);
 fout.close();
 return 0;
}

上面的操作虽然使用了文件指针偏移操作fout.seekp(-5,ios::end); ,但是每次写入还是追加到文件末尾,解决办法使用文件打开模式ios::in,这样可以保证文件内容不会被清空,且文件指针偏移操作有效。

fout.open("hello.txt",fstream::binary | fstream::out | fstream::in);

//或
fstream fout("hello.txt",fstream::binary | fstream::out | fstream::in);

二、删除指定位置的文件内容

很遗憾,C++的文件流并没有提供这样的功能,我们只能先读取保留的内容,再以截断模式写回原文件[3]。

总结

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。

参考文献

[1]C++ overwriting data in a file at a particular position

[2]std::ios_base::openmode

[3]overwriting some text in a file using fstream and delete the rest of the file


# c  # 覆盖文件内容  # 删除文件内容  # c语言删除文件内容  # C++实现单张图片读取和保存  # c++读取数据文件到数组的实例  # VC++实现文件与应用程序关联的方法(注册表修改)  # C++实现修改函数代码HOOK的封装方法  # C++如何删除map容器中指定值的元素详解  # C++中关于set删除的一些坑  # 浅谈c++ vector和map的遍历和删除对象  # 详解在C++中显式默认设置的函数和已删除的函数的方法  # C++删除指定文件夹下N天及之前日志文件的方法  # C++递归删除一个目录实例  # C++ vector删除符合条件的元素示例分享  # C++操作文件进行读取、删除、修改指定行  # 清空  # 所有内容  # 好了  # 说了  # 不多  # 给大家  # 可以直接  # 一个问题  # 这篇文章  # 谢谢大家  # 较少  # 解决办法  # 在工作中  # 再以  # 很遗憾  # 运算符  # 掩码  # 使用了  # 网上  # 有疑问 


相关文章: 如何快速上传建站程序避免常见错误?  如何使用Golang table-driven基准测试_多组数据测量函数效率  潮流网站制作头像软件下载,适合母子的网名有哪些?  学校为何禁止电信移动建设网站?  *服务器网站为何频现安全漏洞?  如何正确下载安装西数主机建站助手?  如何在企业微信快速生成手机电脑官网?  网站建设设计制作营销公司南阳,如何策划设计和建设网站?  如何用虚拟主机快速搭建网站?详细步骤解析  小型网站制作HTML,*游戏网站怎么搭建?  建站之星安装模板失败:服务器环境不兼容?  家庭建站与云服务器建站,如何选择更优?  如何用低价快速搭建高质量网站?  如何在万网主机上快速搭建网站?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  建设网站制作价格,怎样建立自己的公司网站?  制作宣传网站的软件,小红书可以宣传网站吗?  ui设计制作网站有哪些,手机UI设计网址吗?  如何在阿里云完成域名注册与建站?  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  建站之星伪静态规则如何正确配置?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  陕西网站制作公司有哪些,陕西凌云电器有限公司官网?  深圳网站制作的公司有哪些,dido官方网站?  音响网站制作视频教程,隆霸音响官方网站?  ,制作一个手机app网站要多少钱?  建站之星免费模板:自助建站系统与智能响应式一键生成  平台云上自助建站如何快速打造专业网站?  完全自定义免费建站平台:主题模板在线生成一站式服务    网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  如何在Windows虚拟主机上快速搭建网站?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  如何在阿里云高效完成企业建站全流程?  建站主机服务器选型指南与性能优化方案解析  如何在云指建站中生成FTP站点?  网站代码制作软件有哪些,如何生成自己网站的代码?  武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?  建站10G流量真的够用吗?如何应对访问高峰?  合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?  一键网站制作软件,义乌购一件代发流程?  c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】  C#怎么创建控制台应用 C# Console App项目创建方法  如何快速搭建高效可靠的建站解决方案?  公司门户网站制作流程,华为官网怎么做?  如何在Golang中指定模块版本_使用go.mod控制版本号  大型企业网站制作流程,做网站需要注册公司吗? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。