C++ でファイル読み込み処理を書くときは昔作ったユーティリティ関数を使っていたため、fread を使って書くことが最近ありませんでした。久しぶりに fread でファイル読み込み処理を書いたら、なんかファイル読み取り途中で失敗してしまう(戻り値が途中までしか読み込めてない結果になってしまう)症状でややはまったので一応メモ。
すごく初歩的ですが、単純に引数のモードを rb にしていなかったのが原因。r にしていたため、ファイルの途中で EOF と誤判定されてしまっていただけでした。
プログラマーになって何年も経つのに未だにこういうミスはしてしまいます。