Lo que quieres contar son palabras o letras. Lo que tu intentas hacer es contar letras (aunque el código también este mal).
Para contar palabras sería algo así, aunque podría mejorarse para leer linea a linea y no caracter a caracter.
Código C:
Ver original#include <stdio.h>
int main()
{
int count = 0;
FILE *f;
char s;
int leidoCaracterAnterior = 0;
f
=fopen("prueba.txt","r");
while ((s
= fgetc(f
)) != EOF
) {
if ((s == ' ' || s == '\n') && leidoCaracterAnterior){
count++;
leidoCaracterAnterior = 0;
}
else
if (s != ' ' && s != '\n')
leidoCaracterAnterior = 1;
}
if (leidoCaracterAnterior)
count++;
printf ("\n%d palabras en el fichero sortida.txt.\n", count
); return 0;
}
El primer error que tienes es que el bucle while está mal cerrado. Tienes que cerrarlo antes de cerrar el fichero con fclose.
El segundo es que lees en cada pasada del bucle dos caracteres en vez de uno a uno y el primero de ellos no lo utilizas excepto para mirar si es final de fichero.
El último problema es el que te he dicho arriba, que estabas intentando contar el número de letras, no de palabras.
Espero que te sirva y saludos.