ループに詰め込みすぎてわけわからんということなら
for(;;){
 r = fread(buff,sizeof(char),8,fp));
 if(r == 0) break;
 buff[r]='\0';
 printf("%s",buff);
}