以字符串方式操作文件

C语言文件操作 /从哪个位置开始移动(0:文件开头;feof(file)) //判断文件指针是否读到了末尾,到了返回真,没到返回假。文件指针的定义:FILE *file = fopen("文件路径","打开方式")(4)读取单个字符:fgetc()(如果有多个fgetc,则依次读取单个字符);1,//移动的字节,正数往后移动,负数往前移动。(7)二进制文件读取操作:fwrite(),fread()fwrite(&a,//写入的东西。 阅读详情

要在大量文本文件中做查找、替换,用编辑器配合正则表达式可以,但目标子串有几十种,又不想碰AWK、SED,

就写了这个非常简单的工具:读入整个文件内容,以字符串形式保存。之后可以对字符串操作。然后写到文件中。

注意:

1.我处理的文件都在100KB以内,所以读取函数只能对付1M以下的文件(有空再改)

2.主要目的是处理文本文件,但却是以二进制文件模式打开文件的,不会自动修改换行符。

#include <stdexcept>
#include <fstream>

class FileString
{
  std::string m_content;

public:
  FileString()
  {}

  FileString(std::string const & fileName)
  {
    this->load(fileName);
  }

  void load(std::string const & fileName);
  void save(std::string const & fileName) const;

  std::string const getContent() const
  {
    return m_content;
  }

  void setContent(std::string const & s)
  {
    m_content = s;
  }
};

void FileString::load(std::string const & fileName)
{
  std::ifstream ifs(fileName.c_str(), std::ios::in | std::ios::binary);
  if(!ifs){
    throw std::runtime_error(std::string("FileString::load(): can not open file: ") + fileName);
  }
  int const BUF_SIZE = 1024 * 1024;
  char * buf = new char[BUF_SIZE];
  ifs.read(buf, BUF_SIZE);
  int n = ifs.gcount();
  m_content.assign(buf, n);
  delete[] buf;
}

void FileString::save(std::string const & fileName) const
{
  std::ofstream ofs(fileName.c_str(), std::ios::out | std::ios::binary);
  if(!ofs){
    throw std::runtime_error(std::string("FileString::save(): can not open file: ") + fileName);
  }
  ofs.write(m_content.c_str(), m_content.size());
}

Python正式课1_if判断、字符串、文件操作、字典、模块以及python处理json方式 请想办法出下列`json`中所有的`英雄名称`和`英雄title`.并将`英雄名称`和`英雄title`写入`names.txt`文件中.说明:普通代码不放运行结果了!最后有作业是个人随便写的,有错误可留言私信!五、字典的嵌套(类似于java对象的嵌套) 阅读详情

相关推荐

Vscode + QT + CMake:高效开发环境搭建全攻略

本文详细介绍了如何搭建Vscode+QT+CMake高效开发环境,涵盖环境安装、配置优化及项目创建全流程。通过整合Vscode的轻量化编辑、QT的跨平台GUI开发以及CMake的现代构建管理,该组合特别适合大型QT项目和跨平台开发团队,能显著提升开发效率。

weixin_30338481的博客 504

c语言文件打开方式字符串,C语言打开文件-C语言打开文件的方式-C语言以只读方式打开文件-C语言以读写方式打开文件-嗨客网...

C语言打开文件教程在在 C 语言中,打开文件使用 fopenC语言fopen函数详解语法FILE *fopen(char *filename, char *mode);参数参数描述filename要打开的文件路径。mode要打开的文件的方式。返回值如果打开成功,则返回一个 FILE 指针,否则,返回头文件fopen 函数在 stdio.h 的头文件里面。技术细节fopen() 会获取文件信息,包括...

weixin_39634579的博客 1998

黑暗中的爆破(船讯网Ais爬虫暨爬虫实战js逆向学习经验分享)

船讯网 爬虫 js逆向 python

returnadsss的博客 1575

操纵文件类

HP操作文件类(文件和文件夹创建,复制,移动和删除) <? /** * 操纵文件类 * * 例子: * FileUtil::createDir('a/1/2/3'); 测试建立文件夹 建一个a/1/2/3文件夹 * FileUtil::createFile('b/1/2/3'); 测试建立文件 在b/1/

ahstudy的专栏 547

MATLAB之把多个小cell拼成一个数组

问题描述 现有一个cell向量 L (90000,1),每个元素都是由一个(100X9)的double数组组成的.如图. 其中, 每个cell元素都是一个单独的数据, 我们要把它转换成(90000, 19, 100)的三维数组. cell2mat, 但是所有的数据会堆叠起来 L2=cell2mat(L); % (90000, 19) reshape, 变成三维数组 reshape的原理是从上到下, 从左往右拆开重组. 目前只有19这一维数据与要求一致, 那就以这个为突破口. L2=L2'; %

落日之城 9249

[系统安全] 三十二.恶意代码检测(2)常用技术详解及总结

前文从产业界和学术界分别详细讲解恶意代码攻击溯源的相关知识,在学术界方面,用类似于综述来介绍攻击追踪溯源的不同方法;在产业界方面,主要参考李东宏老师从企业恶意样本分析的角度介绍溯源工作。这篇文章将详细总结恶意代码检测技术,包括恶意代码检测的对象和策略、特征值检测技术、校验和检测技术、启发式扫描技术、虚拟机检测技术和主动防御技术。希望这篇文章对您有所帮助,如果文章中存在错误、理解不到位或侵权的地方,还请告知作者与海涵。且看且珍惜,加油~

杨秀璋的专栏 1万+

Java字符串写入文件三种方式

1、使用FileWriterString str="hello world!"; FileWriter writer; try { writer = new FileWriter("E:/token.txt"); writer.write(str); writer.flush();

路漫漫,水迢迢 4万+

微信删除的聊天记录怎么恢复(2024年最新攻略合集)

随着微信对我们生活中方方面面的渗透,微信已然从一款简单的社交软件过渡成为现时代的一种生活方式,而微信中的聊天记录就是我们和朋友之间历程的最好证明。对此,今天我们来聊聊微信删除的聊天记录怎么恢复的问题。

m0_70960708的博客 944

把文件以二进制格式或base64字符串形式保存到数据库中,并实现下载功能源码

主要的代码如下:上传部分: //得到提交的文件StreamfileDataStream=upFile.PostedFile.InputStream;//得到文件大小intfileLength=upFile.PostedFile.ContentLength;//创建数组byte[]fileData=newbyte[fileLength];//把文件流填充到数组fileD...

weixin_30375427的博客 350

UNet 改进(19):与ASPP结合的图像分割模型

这个代码实现了一个改进版的UNet模型,在传统的UNet架构基础上,引入了ASPP模块来增强模型捕获多尺度上下文信息的能力。​​UNet主干网络​​:经典的编码器-解码器结构,带有跳跃连接​​ASPP模块​​:位于瓶颈层,用于提取多尺度特征。

2401_82355416的博客 878

米哈游运维面试题及参考答案

Linux 系统运行级别是用于定义系统启动时所需要达到的功能状态。运行级别 0:表示系统停机状态,用于关闭系统,是系统的关机级别。当系统切换到这个级别时,会停止所有的服务和进程,然后关闭系统。运行级别 1:也称为单用户模式。在这个级别下,系统只启动基本的系统服务和必要的进程,仅允许 root 用户登录系统进行维护操作,常用于系统出现故障需要紧急修复的情况,比如修复文件系统错误、重置 root 密码等。运行级别 2:多用户模式,但不支持网络文件系统(NFS)。

大模型大数据攻城狮的专栏 745

C#操作Excel文件三种方式及连接字符串

转自:http://www.cnblogs.com/JacobHuang/p/5663926.html .Net平台上对Excel进行操作主要有两种方式。第一种,把Excel文件看成一个数据库,通过OleDb的方式进行读取与操作;第二种,调用Excel的COM组件。两种方式各有特点。 注意一些简单的问题1.excel文件只能存储65535行数据,如果你的数据大于65535行,那么就需要将exc...

happymagic的专栏 4525

基于STM32姿态解算-正点原子ATK-IMU901模块标准库开发——正点原子串口角度传感器模块十轴IMU加速度气压计陀螺仪_资料编号29

购买了正点原子的ATK-IMU901模块后,发现例程给的是HAL库的,本项目将HAL库例程转换为库函数版本(基于STM32)。实战开发,亲测无误。

嵌入式阿齐Archie 3863

Python 变量、字符串方式、集合、文件操作

1、判断 # 非空即真、非0即真 # 不为空的话就是true,是空的话就是false # 只要不是0就是true,是0就是false # 布尔类型 # True False name = input('请输入你的名字:').strip() a = [] #false d={} # false c = 0 #false f = tuple() #false e='' #fals...

weixin_33998125的博客 141

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

java的io操作(将字符串写入到txt文件中的五种方式)

这篇文章主要介绍了java的io操作示例,将字符串写入到txt文件中,需要的朋友可以参考下 import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.io.PrintStream; import java.io.PrintWriter; impo

DN金猿的博客 9973

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

后端传递文件流字符串,前端接收方式,并模拟下载操作

//下载操作 download(){ axios({ url:'/download/sms',//请求路径 method:'post',//请求方式 data:this.queryForm,//传递的数据 responseType:'blob',//接收数据格式 转为blob he...

qq_41926885的博客 1528

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

第二篇:字符串格式化与文件操作

一.字符串格式化 字符串的格式化有两种方式:百分号方式(较老)、format方式(先进) 1、百分号方式 %s万能的可以接收任意类型 msg = "i am %s, my hobby is %s" %('lif','alex') print(msg) %d只接收int数字类型 msg = "i am %s, age is %d" %('alex',18) msg = "i am %(name)s, age is %(old)d"%({'name':'alex','old':18}) #传字典 print.

love_mengdd的博客 269

C/C++ 文件 / 字符串 操作大全

https://blog.youkuaiyun.com/qq_34719188/article/details/83341176 文章目录 一、需要提前了解的 1. 文件分类 2. 优缺点 3. 实际举例 4. 乱码原因 二、C文件操作 1. 文件打开方式分类 2. 代码详解(各种读写) 三、C++之 cin、cout 1. ios::cout 1.1 cout格式输出 1.2 cout 成员函数 2. i...

hbqjzx的专栏 602

字符串格式化与文件处理

一.字符串格式化 字符串的格式化有两种方式:百分号方式(较老)、format方式(先进) 1、百分号方式 %s万能的可以接收任意类型 msg = "i am %s, my hobby is %s" %('lif','alex') print(msg) %d只接收int数字类型 msg = "i am %s, age is %d" %('alex',18) msg = "i am %(name)s, age is %(old)d"%({'name':'alex','old':18}) #传字典 print(.

m0_56419062的博客 223

【C 语言】文件操作 ( 配置文件读写 | 写出或更新配置文件 | 逐行遍历文件文本数据 | 获取文件中的文本行 | 查询文本行数据 | 追加文件数据 | 使用占位符方式拼接字符串 )

一、逐行遍历文件文本数据、 1、获取文件中的文本行、 2、查询文本行数据、 3、追加文件数据、 4、使用占位符方式拼接字符串、 二、完整代码示例、

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 1260

Scala字符串输出、键盘输入和文件操作

字符串输出 基本语法 (1)字符串,通过+号连接 (2)printf 用法:字符串,通过%传值。 (3)字符串模板(插值字符串):通过$获取变量值 案例实操 package chapter02 object Test04_String { def main(args: Array[String]): Unit = { //(1)字符串,通过+号连接 val name: String = "alice" val age: Int = 18 println(age + "岁

一入大数据深似海?别怕!“数据极客圈”就是你的救生圈,走对圈子跟对人,趣析数据、畅聊趋势,快进圈子! 1152

python 文件操作,常用的打开、写入、读取方式

请注意,在使用open()函数时,第一个参数是文件名,第二个参数指定打开文件的模式,'r'表示只读。请注意,使用'w'模式打开文件会覆盖原有内容,使用'a'模式会在文件末尾追加内容。在Python中,可以使用内置的open()函数来打开文件并进行读取操作。#我们使用"rb"模式打开文件"file.txt"进行二进制读取操作,并打印出文件的二进制内容。以上是关于python文件的打开,写入和读取,希望对你有帮助!#这种模式适用于读取包含二进制数据的文件,如图片、音频等。

weixin_43849808的博客 1385

C#培训2019-9-5第四课 字符串比较、Convert使用、编码方式、文件读取遍历、char[]练习、查询某个类型占用字节

一 、字符串比较 1.比较两个字符串是否相同 判断两字串是否相等时,不要使用 szA.ToUpper() == szB.ToUpper() 这种写法, 改用 string.Compare( szA, szB, true ) == 0 这样速度快十倍。 第三个引数true 是指不管大小写。 MMICommon 提供 Str.Equ( szA, szB, true ),可读性较佳,回传值为true o...

余山 151

Python基础--文件操作(OS)

一、操作方式 1)读 注意:光标会以文本开始读取 1、以文本读取读 1、绝对路径读取 f = open('/home/pyrookie/temp.txt',mode='r',encoding='utf-8') content = f.read() print(content) f.close() 2、相对路径读取 f2 = open('temp.py',mode='r',...

PyRookie 757
上一篇: “最大子段和”
下一篇: C++,替换字符串的全部目标子串
CodeArhat
博客等级 码龄15年 13粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值