c++ 文本处理

技术c++ 文本处理 c++ 文本处理c++ 文本处理
1、使用sstream版本
(1)功能:截取第一列为1以后的数据,如下图,截取第5行(包括第5行)以后的数据,前面4行数据丢弃。(2)代码:tex

c文本处理

c++ 文本处理

1、使用sstream版本

(1)功能:截取第一列为一以后的数据,如下图,截取第5行(包括第5行)以后的数据,前面四行数据丢弃。

(2)代码:textProc.cc

#包含输入输出流

#包含fstream

#包含流

#包含字符串

使用命名空间标准;

int main(int argc,char *argv[]) {//*argv[]是一个指针数组,也就是一个字符串数组。

字符串dir='/data/';

string old _ file=dir argv[1]'/input/txdsp _ input _ old。dat ';

string gen _ file=dir argv[1]'/input/txdsp _ input。dat ';

字符串cmd=' mv

cmd=cmd gen _ file ' ' old _ file

if(系统(cmd。c _ str())==0){ 0

cout'file移动正常!恩德尔

} else {

标准输出文件移动失败!恩德尔

}

ifstream为(old _ file);

流操作系统的(gen _ file);

istringstream iss

字符串行,字;

while(getline(is,line)){ 0

iss.str(线);//刷新线流中的字符串

国际空间站。clear();//清除线流中的状态,如果线流读完了故障位会拉起,导致刷新了新数据也不能读取。

issword/利用线流一个一个单词的读取,这里只读一个帧头标识。

if(word=='1') { //将找到帧头后的所以数据都输出。

oslineendl

打破;

}

}

while(getline(is,line)){ 0

oslineendl

}

操作系统。close();

就是。close();

返回0;

}

2、regex版本

#包含输入输出流

#包含fstream

#包含正则表达式

#包含字符串

使用命名空间标准;

int main(int argc,char *argv[]) {//*argv[]是一个指针数组,也就是一个字符串数组。

字符串dir='/data/';

string old _ file=dir argv[1]'/input/txdsp _ input _ old。dat ';

string gen _ file=dir argv[1]'/input/txdsp _ input。dat ';

字符串cmd=' mv

cmd=cmd gen _ file ' ' old _ file

if(系统(cmd。c _ str())==0){ 0

cout'file移动正常!恩德尔

} else {

标准输出文件移动失败!恩德尔

}

ifstream为(old _ file);

流操作系统的(gen _ file);

字符串行;

smatch结果;

雷盖克斯re('^1.*');

while(getline(is,line)){ 0

if(regex_search(line,results,re)) { //将找到帧头后的所以数据都输出。

oslineendl

打破;

}

}

while(getline(is,line)){ 0

oslineendl

}

regex re2('^tel:(\\d{11}),addr:(\\w)');//正则表达式相对于大蟒的要多加一个反斜杠"\",应该\在C是特殊字符

string str=' tel:15688886666,addr :四川';

regex_search(str,results,re2);//传给regex_search的字符串可以是字符串,字符wchar等四种类型,对应的使用smatch、cmatch、wcmatch等四中类型。为了简单,一般只使用字符串匹配。

cout结果。str()endl;//打印整个潜艇用热中子反应堆(海底热反应堆的缩写)

cout结果。str(1)endl;//打印第一个匹配的括号(\\d{11})

cout结果。str(2)endl;//打印第二个匹配的括号(\\w)

操作系统。close();

就是。close();

返回0;

}

输出:

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/132066.html

(0)

相关推荐