/********************************************************
Copyright (C), 2016-2018,
FileName: main
Author: woniu201
Email: wangpengfei.201@163.com
Created: 2018/08/31
Description: 文件操作:读取指定行,删除指定行,修改指定行
********************************************************/
#include <iostream>
#include <fstream>
#include <string>
using namespace std; /************************************
@ Brief: 读取指定行数据
@ Author: woniu201
@ Created: 2018/08/31
@ Return:
************************************/
void ReadLineData(char* fileName, int lineNum, char* data)
{
ifstream in;
in.open(fileName); int line = 1;
while (in.getline(data, 1024))
{
if (lineNum == line)
{
break;
}
line ++ ;
} in.close();
} /************************************
@ Brief: 字符串转string类型
@ Author: woniu201
@ Created: 2018/08/31
@ Return:
************************************/
string CharToStr(char * contentChar)
{
string tempStr;
for (int i=0;contentChar[i]!='\0';i++)
{
tempStr+=contentChar[i];
}
return tempStr;
} /************************************
@ Brief: 删除指定行
@ Author: woniu201
@ Created: 2018/08/31
@ Return:
************************************/
void DelLineData(char* fileName, int lineNum)
{
ifstream in;
in.open(fileName); string strFileData = "";
int line = 1;
char lineData[1024] = {0};
while(in.getline(lineData, sizeof(lineData)))
{
if (line == lineNum)
{
strFileData += "\n";
}
else
{
strFileData += CharToStr(lineData);
strFileData += "\n";
}
line++;
}
in.close(); //写入文件
ofstream out;
out.open(fileName);
out.flush();
out<<strFileData;
out.close();
} /************************************
@ Brief: 修改行数据
@ Author: woniu201
@ Created: 2018/08/31
@ Return:
************************************/
void ModifyLineData(char* fileName, int lineNum, char* lineData)
{
ifstream in;
in.open(fileName); string strFileData = "";
int line = 1;
char tmpLineData[1024] = {0};
while(in.getline(tmpLineData, sizeof(tmpLineData)))
{
if (line == lineNum)
{
strFileData += CharToStr(lineData);
strFileData += "\n";
}
else
{
strFileData += CharToStr(tmpLineData);
strFileData += "\n";
}
line++;
}
in.close(); //写入文件
ofstream out;
out.open(fileName);
out.flush();
out<<strFileData;
out.close();
} int main()
{
char lineData[1024] = {0};
ReadLineData("D:\\project\\cpp\\2010\\jsondemo\\jsondemo\\1.json", 21, lineData);
cout << lineData << endl; DelLineData("D:\\project\\cpp\\2010\\jsondemo\\jsondemo\\1.json", 10); ModifyLineData("D:\\project\\cpp\\2010\\jsondemo\\jsondemo\\1.json", 10, "aaaaaaaaaaaaaa");
getchar();
}

欢迎加群交流:C/C++开发交流

C++操作文件行(读取,删除,修改指定行)的更多相关文章

  1. [Linux] sed命令使用之在文件中快速删除/增加指定行

    1.删除文档的第一行 sed -i '1d' <file> 2.删除文档的最后一行sed -i '$d' <file> 3.在文档指定行中增加一行例如文档如下:echo &qu ...

  2. C#对config.ini文件进行读取和修改

    C#对config.ini文件进行读取和修改: public partial class Patrolcar : Form之后可以加入如下类: #region public class IniFile ...

  3. 如何用SQL命令行工具删除dedecms指定id文章

    用dedecms采集时标题字段设置错了,出现了注释符号<!---->,导致后台的文章列表出现错误,也无法直接从列表中删除,可以远程登录数据库去操作,这个相对比较麻烦,想着直接从后台的SQL ...

  4. php操作文件(读取写入文件)

    一,PHP如何读取文件 PHP读取文件可以读取当前服务器或远程服务器中的文件.其步骤是:打开文件.读文件和关闭文件. 1,PHP如何打开文件 使用PHP函数fopen()打开一个文件,fopen()一 ...

  5. python 用类方法和静态方法实现是追加写文件内容,和读指定行号的内容

    用类方法和静态方法实现:一个是追加写文件一行内容,一个是读指定行号的内容   #coding=utf-8   class handle_file(object):     def __init__(s ...

  6. python-文件操作练习-配置文件读取、修改、删除

    文件操作练习:http://www.cnblogs.com/wupeiqi/articles/4950799.html global log 127.0.0.1 local2 daemon maxco ...

  7. 一步步开发自己的博客 .NET版(11、Web.config文件的读取和修改)

    Web.config的读取 对于Web.config的读取大家都很属性了.平时我们用得比较多的就是appSettings节点下配置.如: 我们对应的代码是: = ConfigurationManage ...

  8. jQuery 操作Cookie 存储 读取 删除等

    <script type="text/javascript" src="/UI.Web.CRM.Main/js/jquery-2.1.1.min.js"& ...

  9. SED修改指定行

    一个文件:cat aa #如果第三行是5的话将改为8,很明显第三行是5所以 结果改变 [root@remote ~]# sed -e '3s/5/8/' aa [root@remote ~]# #如果 ...

随机推荐

  1. 由Java正则表达式的灾难性回溯引发的高CPU异常:java.util.regex.Pattern$Loop.match

    问题与分析 某天领导report了一个问题:线上的CPU自从上一个版本迭代后就一直处于居高不下的状况,领导看着这段时间的曲线图判断是有两条线程在不停的死循环. 接到任务后去查看了AWS的CloudWa ...

  2. linux shell下去掉windows文件的换行^M

    cat filename | tr '\n\r'  '\n' > test

  3. meshing-轴

    原视频下载地址:https://yunpan.cn/cqrJRm32dMmAL  访问密码 9dd9

  4. JS 定时器的4种写法及介绍

    JS提供了一些原生方法来实现延时去执行某一段代码,下面来简单介绍一下setTiemout.setInterval.setImmediate.requestAnimationFrame. 一.什么是定时 ...

  5. JavaScript数字精度丢失的一些问题

    本文分为三个部分 JS 数字精度丢失的一些典型问题 JS 数字精度丢失的原因 解决方案(一个对象+一个函数) 一.JS数字精度丢失的一些典型问题 1. 两个简单的浮点数相加 1 0.1 + 0.2 ! ...

  6. python 可执行

    py2exe使用方法 py2exe作者:zzj 日期:2006-07-05字体大小: 小 中 大 一.简介 py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.ex ...

  7. Flutter移动电商实战 --(50)持久化_shared_preferences

    当app关掉了.再进去的时候 ,购物车的内容还是存在. sqflite提供这个来操作SQLite数据库 flutter提供三种持久化的工具 今天要学的就是 shared_preferences 还有一 ...

  8. 在基于acpi的linux系统上如何检查当前系统是否支持深度睡眠?

    答: 执行以下命令: # dmesg|grep -i acpi |grep -i supports (S3表示支持深度睡眠) ACPI: (supports S0 S1 S3 S4 S5)

  9. 安卓打包apk

    打apk包的环境依赖 1.jdk 2.sdk 3.ndk 打apk包的工具 gradle mkdir /usr/local/Android cd /usr/local/Android mkdir sd ...

  10. 阶段5 3.微服务项目【学成在线】_day16 Spring Security Oauth2_13-SpringSecurityOauth2研究-JWT研究-生成JWT令牌&验证JWT令牌

    生成jwt需要用私钥来签名.在Auth认证服务下创建测试类 创建密钥工厂,构造函数需要的参数 获取私钥 有了私钥就可以生成JWT令牌 使用jwtHelper是spring security里面的类 e ...