Hola yo tengo este codigo en el que ya me da los carteres y las lineas pero las palabras no me las contabiliza ;-;
#include <iostream>
#include <fstream>
#include <string>
#include <cstring>
#include <iomanip>
#include <cstdlib>
#include <string.h>
using namespace std;
void leer (void);
int Cuentalineas (int total);
int Cuentacaracteres (string cadena,int total);
int Cuentapalabras (string cadena,int total);
int main(){
leer();
}
void leer (void){
ifstream entrada;
string cadenaLeida;
char nombre[30];
int cuenta=0,caracteres=0,palabras=0;
cout<<"Ingresa el path de tu archivo"<<endl;
cin.getline(nombre,30);
cout <<"Abriendo archivo..."<<endl;
entrada.open(nombre,fstream::in);
if (entrada.is_open()== true) {
while ( !entrada.eof()) {
getline(entrada,cadenaLeida);
cout<<cadenaLeida<<endl;
cuenta=Cuentalineas (cuenta);
caracteres=Cuentacaracteres (cadenaLeida,caracteres);
palabras=Cuentapalabras (cadenaLeida,palabras);
}
entrada.close();
}
else {
cout << "ERROR: No se ha podido abrir el archivo"<< endl;
}
cout <<"-----------------------------------------"<<endl;
cout<< "Lineas totales de tu archivo"<<endl<<cuenta<<endl;
cout<< "Caracteres totales de tu archivo"<<endl<<caracteres<<endl;
cout<< "Palabras totales de tu archivo"<<endl<<palabras<<endl;
}
int Cuentalineas (int total){
total=total+1;
return (total++);
}
int Cuentacaracteres (string cadena,int total){
total=cadena.size()+1;
return (total++);
}
int Cuentapalabras (string cadena,int total){
for(int i=0;i<total; i++){
while(i<total && cadena.at(i)==' '){
i=i+1;
}
if(i<total){
total=total+1;
}
while(i<total && cadena.at(i)==' '){
i=i+1;
}
}
return (total++);
}