>>644,645,646
レスどもです

説明不足で申し訳ないです.ファイルの中身が
07 00 BE CC C0 CC C5 DB 36
といった感じで
後続文字byte数 文字列
みたいな形式になってるのでsizeof(int)で4byte1ブロックだと07 00 BE CCがbufに入ってしまいえらいことになるのです OTZ

もちろんsizeof(int)は4でした.
リトルエンディアンでfreadはたしか大丈夫だったと思います

そして.buf = 0;で初期化すると正しく7と表示されました.
ありがとうございます!

あとスレ違いになるかもしれないんですけどそのゴミとはなんでつくんでしょう?