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;
}
				