codice:
if ((fp=fopen("gnam.txt", "r"))==NULL) {printf("errore nell'apertura");}     
    else {  i=0;            
            c=fgetc(fp);
            while (!feof(fp) && (c!= '\n')) {
                  if (c='a')  i++; 
                  printf("%d", i);}
                  fclose(fp);}
innanzi tutto direi proprio che nel cilco non rileggi mai c quindi, ti crea problemi di sicuro perchè testi sempre la stessa variabile!! infine come dice oregon l'if va testato con ==...poi infine ho provato a fare una soluzione un pò rudimentale...prova se va bene...la posto qua sotto!

codice:
if ((fp=fopen("gnam.txt", "r"))==NULL) {printf("errore nell'apertura");}     
    else {  i=0;            
            c=fgetc(fp);
            while ( !feof(fp) ) {
                  if ( f == 1 && c == 'a' ) i++; 
                  f=0;
                  if ( c == '\n' ) f = 1;
                  c=fgetc(fp);
            }    
            fclose(fp);
    printf("\n%d\n", i);                               
    }