Resulta q nos pidieron hacer un programa q leyera n cantidad de cadenas de un archivo, ademas debe contar la cantidad de lineas y la cantidad de palabras, pero debe tambien decir cuantas veces se repite una palabra en el texto, el codigo q coloco es lo q tengo hasta el momento, ya me lee la cantidad de palabras y la cantidad de lineas lo q no logro hacer es q me diga cuantas veces se repite una palabra en el texto, agradezco mucho la ayuda
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int contar_palabras(string);
int main (){
int lineas=0;
int palabras=0;
string x;
ifstream entrada;
ofstream salida;
entrada.open("arc_in");
salida.open("arc_out",ios::trunc);
if(!entrada){
cerr<<"El archivo no existe\n";
return 0;
}
while(getline(entrada,x)){
lineas++;
palabras+=contar_palabras(x);
}
salida<<lineas<<" lineas\n";
salida<<palabras<<" palabras\n";
entrada.close();
salida.close();
return 0;
}
int contar_palabras(string x){
int cant=0;
int pos;
if(x.size()==0)
return cant;
cant++;
pos=x.find_first_of(" ");
while(pos!=-1){
cant++;
if(x[pos+1]==' ')
while(x[pos+1]==' ')
pos++;
x=x.substr(pos+1,x.size()-(pos+1));
pos=x.find_first_of(" ");
cout<<x<<endl;
}
return cant;
}