fread citeste bucati de X bytes din fisier in memorie, stream-urile fac altceva, trebuie sa iti alegi (dupa fread trebuie sa parsezi tu input-ul, stream-urile fac ele asta pentru tine)
Totusi cu stream-uri s-ar putea sa poti citi pana la sfarsitul fisierului, cu fin.get(), nu sunt sigur, incearca