Necesito hacer un programa para contar cada tipo de caracter de un archivo de texto, al final me tiene que decir cuanto numero de cada tipo hay, el problema es que cuando un cuando leo un caracter del archivo me da error y no se como solucionarlo, ayuda D:
#include <iostream>
#include <ctype.h>
#include <stdio.h>
using namespace std;
int ma,mi,di,es,pun; // Mayusculas, Minusculas, Digistos, Espacios y Puntuacion, respectivamente.
char a;
int b;
bool n;
int main()
{
FILE *fichero;
fichero= fopen("testamento.txt", "r");
if (fichero == NULL) puts("Error al abrir el archivo");
{
while (!feof(fichero)) // Mientras no se llegue al final del archivo...
{
fscanf (fichero, "%s", a);
if (islower(a)) { mi++; }
if (isupper(a)) { ma++; }
if (isspace(a)) { es++; }
if (ispunct(a)) { pun++; }
if (isdigit(a)) { di++; }
}
}
fclose(fichero);
system("pause");
}