A como veo lo que quiere es solo hacer una copia del archivo y luego contar el total de palabras encontradas en el.
Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
FILE *original;
FILE *copia;
int palabras = 0, error;
char nombre[20], copianombre[40] = "copia_", linea[100], *pch;
do{
error = 0;
cout << "Nombre del archivo (sin inclui .txt): ";
cin >> nombre;
strcat(nombre, ".txt");
original = fopen(nombre, "r");
if(original == NULL)
{
error = 1;
cout << "El archivo no existe, o no se logro abrir" << endl;
}
}while(error == 1);
strcat(copianombre, nombre);
copia = fopen(copianombre, "w+");
while(fgets(linea, 100, original) != NULL)
{
fputs(linea, copia);
pch = strtok(linea, " \n");
while(pch != NULL)
{
palabras++;
pch = strtok(NULL, " \n");
}
}
fclose(original);
fclose(copia);
cout << "Total de Palabras: " << palabras;
cin.get();cin.get();
return 0;
}