zoukankan      html  css  js  c++  java
  • C++操作文件行(读取,删除,修改指定行)

    /********************************************************
    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]!='';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 += "
    ";
    		}
    		else
    		{
    			strFileData += CharToStr(lineData);
    			strFileData += "
    ";
    		}
    		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 += "
    ";
    		}
    		else
    		{
    			strFileData += CharToStr(tmpLineData);
    			strFileData += "
    ";
    		}
    		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++开发交流

  • 相关阅读:
    组播技术
    高阶函数
    《统计学习方法》第一章学习笔记
    R代码规范(转)
    数据挖掘与商业智慧:华通二十年专题----台湾辅仁大学谢邦昌教授访谈(转载)
    基于Hadoop的机器学习开源项目
    特征选择算法之开方检验(转载)
    朴素贝叶斯算法及不同特征值结果的比较
    走出数据挖掘的误区(转载)
    互联网时代的社会语言学:基于SNS的文本数据挖掘(转载)
  • 原文地址:https://www.cnblogs.com/woniu201/p/11694579.html
Copyright © 2011-2022 走看看