?? find_error.cpp
字號:
#include "cyio.h"
#include <map>
class FindError{
public:
ifstream in;
ofstream out;
int n;
int sum;
map<string,int> dic;
map<string,int> elist;
FindError(char* inf,char* outf){
in.open(inf);
out.open(outf);
}
void run(){
int i,j,k;
string str;
char ch;
inNum(in,n);
for (i=0;i<n;i++){
getline(in,str);
dic.insert(make_pair(str,1));
}
sum=0;
vector<string> tstr;
string patch;
string sline;
map<string,int>::iterator it;
for (it=dic.begin();it!=dic.end();it++){
pair<string,int> tp=*it;
cout<<tp.first<<" : "<<tp.second<<endl;
}
while (!in.eof()){
getline(in,sline);
for (i=0;i<sline.size();i++){
if (sline[i]==',' || sline[i]=='.' || sline[i]=='?' || sline[i]=='!') sline[i]=' ';
}
for (i=0;i<sline.size();i++){
if (sline[i]==' '){
while (i+1!=sline.size() && sline[i+1]==' ') sline.erase(sline.begin()+i+1);
}
}
inStr(sline,tstr,string(" "));
tstr[0].insert(tstr[0].begin(),patch.begin(),patch.end());
for (i=0;i<tstr.size()-1;i++){
str=tstr[i];
cout<<"str: "<<str<<endl;
if (dic.count(str)==0){
elist[str]++;
sum++;
str.erase(str.begin(),str.end());
}
patch=tstr[tstr.size()-1];//單詞折行的問題
}
}//end while
if (dic.count(patch)==0){
elist[patch]++;
sum++;
}
for (it=elist.begin();it!=elist.end();it++){
pair<string,int> tp=*it;
cout<<tp.first<<" : "<<tp.second<<endl;
out<<tp.first<<" ";
}
cout<<"sum :"<<sum<<endl;
out<<endl<<sum<<endl;
}
};
int main(){
FindError fe("check.in","check.out");
fe.run();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -