c++文件操作实现提取字段功能
来源:互联网 发布:java并发实战 epub 编辑:程序博客网 时间:2024/06/07 12:38
最近做一些数据方面的挖掘,发现python或perl的split函数功能,c++没有。在linux下awk很容易提取出来,但是对于偏爱vs的我来说,写一个可以提取字段的split还是很有用的,纯粹用于数据清洗。多做几个函数,以后归并为类,做成库,就方便了,总是造轮子,是没有头的。
#ifndef EXTRACT_DATA_HH#define EXTRACT_DATA_HH#include <iostream>#include <string>#include <vector>#include <fstream>#include <sstream>using namespace std;void extract_data(const string& infile,const string& outfile,vector<int> rows) //infile是输入文件的路径,outfile是输出路径,rows保存了需要提取的列。由第一列开始计数。{ifstream fin;fin.open(infile.c_str());ofstream fout;fout.open(outfile.c_str());string tmp_str;//存储读取的行while(getline(fin,tmp_str)){stringstream ss(tmp_str);//字符串流主要是用做分割字串int i = 0;string sub_str;bool find_flag = false;//flag用于判断是否找到该字段。while(ss >> sub_str){i ++;if(find(rows.begin(),rows.end(),i) != rows.end()){fout << sub_str + '\t';find_flag = true;}}if(find_flag){fout << endl;}}}#endif
该方法思路简单,但缺点有二,谨慎使用
1. 只能分割空格或者TAB分割的字符串。
2.内核与用户交互过多,效率不高。
比较优秀的开源库boost已经提供了此功能,具体可以参照我的http://blog.csdn.net/zyaiwx/article/details/8491852
- c++文件操作实现提取字段功能
- 通过操作BMP文件的RGB值实现BMP文件的旋转,锐化,二值化,轮廓提取,边缘检测,合并等功能(一)
- 通过操作BMP文件的RGB值实现BMP文件的旋转,锐化,二值化,轮廓提取,边缘检测,合并等功能(二)
- HelloWorld.c小程序、实现dos命令行功能、打开文件操作(2种方式)
- C语言文件操作实现的记账功能的控制台程序
- C实现文件内部操作
- 提取gz文件中的压缩部分数据,C语言实现
- 通过shell命令提取文件内容(C实现)
- 联想功能字符串的提取(c)
- 如何提取PSD文件缩略图查看功能
- python实现对于多个文件夹下的txt文件的特定字段进行提取,并生成新的txt
- 左式堆(不完全操作)实现文件C语言
- C语言实现文件、文件夹的操作
- c语言实现读取ini文件操作
- C语言链表操作功能实现详解心得
- 模块管理常规功能自定义系统的设计与实现(52--功能更新[2] 对百分比字段的操作)
- 文件操作:实现 建立:读,写,删除 功能
- 文件目录操作编程 实现“ls -l“功能
- struts2文件上传的三种方式解析
- Java内部类
- codeforces 173E 数据结构 好题
- Java中的一些名词术语
- Linux下源码安装samba服务器
- c++文件操作实现提取字段功能
- 555->565
- sysfs
- LISP学习
- sysfs
- windows player,wzplayerV2 for windows(2014-04-16)更新
- 快牛启动(ShortcutConsole)更新至V1.4(大更新 + 更名)
- sysfs
- sysfs