Poprawiona wersja:
#include <stdio.h>
int main()
{
FILE * plik;
plik = fopen("aaa","rt");
if(plik == NULL)
{
printf("Blad otwarcia pliku!");
return 0;
}
char znak;
char znak2;
int ile = 0;
printf("Podaj znak, jakiego szukac: ");
scanf("%c",&znak);
if(plik!=NULL)
{
while( ( znak2=fgetc(plik) ) != EOF)
if(znak == znak2) ile++;
}
printf("%d wystapien znaku %c",ile,znak);
fclose(plik);
return 0;
}
po pierwsze wczytywałeś znak jako stringa - scanf("%s",&znak);
po drugie fgetc przy końcu pliku zwraca EOF, więc można użyć tego jako warunku pętli while