>>500
たぶん、かなりの初心者なんだと思うけど
4文字読むとか8文字読むために fgets は、普通、使わない。
fgets は1行丸ごと読むために使う。

char buf[1024];         // 十分なサイズ
fgets(buf, sizeof(buf), fp);

とかしておいて、そのあと読んだデータを加工するのが、普通の使い方。

strcpy(sdt[i].number, buf);
for(j=0; sdt[i].number[i] ; j++)
 if(sdt[i].number[j] == '\n' ) sdt[i].number[j] = '\0';