I am writing code which calculate how many times each word appears in text ( I DID THIS TASK), but I can't find a way to calculate in which lines these words appeared.
I don't know where to start.
#include "header.h"
int main()
{
//read the input, keeping track of each word and how often we see it
std::ifstream in("tekstas.txt"); // input file
std::string input;
std::map<std::string, int> counters; // store each word and an associated counter
std::vector<char>CharVect; // vector that stores symbols i want to replace
formuojuChar(CharVect); // pushbacking that vector with symbols
for (unsigned int i = 0; !in.eof(); i++)
{
std::getline(in, input);
std::transform(input.begin(), input.end(), input.begin(), ::tolower); // lowering letters so for example "Mom"= "mom"
Replace(input,CharVect, ' '); // replace symbols with space
std::stringstream read(input);
std::string word;
while (read >> word)
{
++counters[word];
}
}
std::ofstream out("isvestis.txt");
std::cout<<"Words that appear more than once in the text: "<<std::endl;
std::cout<<std::endl;
for (std::map<std::string, int>::const_iterator it = counters.begin();it != counters.end(); ++it)
{
if((it->second)>1)
{
std::cout<<"'" <<it->first<<"' " <<"appears "<<it->second <<" times in lines: " ;
/*
ANY IDEAS ?
*/
std::cout<<std::endl;
}
}
return 0;
}
I expect output to show me in which .txt file lines that word appears. TY
Aucun commentaire:
Enregistrer un commentaire