Professional Documents
Culture Documents
Barleby Lock
Barleby Lock
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <map>
#include <iomanip>
bool buildMap();
void writeIndex();
void AddWordtoMap(std::string);
if (buildMap()){
writeIndex();
}
return 0;
}
bool buildMap(){
ifstream inputFile(filename.c_str());
string line;
if(inputFile.is_open()){
while(getline(inputFile, line)){
std::size_t prev =0, pos;
while((pos = line.find_first_of
("~`=!@#$%^&*)/\?-_|[,. }] (_-+{;':""></", prev)) != std::string::npos){
if(pos>prev){
AddWordtoMap(line.substr(prev, pos-prev));
}
prev= pos+1;
}
if(prev< line.length()){
AddWordtoMap(line.substr(prev, std::string::npos));
}
}
inputFile.close();
}
else
{
cout<<"\n-Unable to open file-\n"<<endl;
return false;
}
return true;
}
void writeIndex()
{
string filename = "example1.txt";
ofstream outfile;
outfile.open(filename);
for(map<string, int> ::iterator itr = wordMap.begin(); itr!=wordMap.end();
++itr)
{
//saving output to file
outfile << "\n "<<itr->first<< setw(10)<<itr->second;
//showing output in console
std::cout<<"\n "<< setw(20) <<itr->first<< setw(10)<<itr->second;
}
cout << "\n";
}