Olá amigo, tentei resolver seu problema. A propósito, este código agora está funcionando bem. Veja o resto. Já agora, traduzo este código com a ajuda do Google Translate. Eu também sou um iniciante neste campo. Espero que seja útil.
#include <stdio.h>
#include <stdlib.h>
int main ()
{
FILE *p;
char c, str[30];
int i = 0;
/* Leia um nome para o arquivo a ser aberto: */
printf ("\n\nDigite um nome para o arquivo:\n");
gets(str);
/* Abre para leitura */
if (! (p = fopen (str, "r"))) /* Se houver um erro ao abrir o arquivo .. */
{/* o programa aborta automaticamente */
printf ("Erro! Incapaz de abrir o arquivo!\n");
exit (1);
}
printf ("\n");
while (! feof (p)) /* Até que o final do arquivo seja alcançado */
{
c = getc (p); /* Leia um personagem no arquivo */
// printf ("% d \ n", c);
if (c!='\n' && c!= -1)
i ++; /* E incremento i */
}
fclose (p); /*Feche o arquivo */
printf ("\nO número de caracteres no arquivo:%s é igual a :%d", str, i);
}