**
- 题目
**
文件中有类似的一行行字符串“(010)(15012345678)|123|(430070)”,按以下格式输出:
“区号| 电话号码| 城市编号| 邮编”
**
- 解析
**
1,读取文件
2,文件中字符串有多行,可用getline每次读一行
3,每一行字符串格式固定,可用substr、find、erase实现字符的提取
**
- 实现
**
#include<iostream>
#include<fstream>
using namespace std;
int main(){
//打开文件
ifstream file("input.txt",ios::in);
if(!file){
cout<<"file is not opened!"<<endl;
exit(0);
}
string str;
//读行
getline(file,str);
while(!str.empty()){
//提取区号
cout<<str.substr(str.find('(')+1,str.find(')')-str.find('(')-1)<<"|";
str.erase(str.find('('),str.find(')')-str.find('(')+1);
//提取电话号码
cout<<str.substr(str.find('(')+1,str.find(')')-str.find('(')-1)<<"|";
str.erase(str.find('('),str.find(')')-str.find('(')+1);
//提取城市编号
str.erase(0,1);
cout<<str.substr(0,str.find('|'))<<"|";
str.erase(0,str.find('|')+1);
//提取邮编
cout<<str.substr(str.find('(')+1,str.find(')')-str.find('(')-1)<<"|";
str.erase(str.find('('),str.find(')')-str.find('(')+1);
cout<<endl;
//读下一行
getline(file,str);
}
return 0;
}