Как посчитать количество элементов в бинарном файле?

Пытался через while посчитать, но оно "ломает" файл и его нельзя далее прочитать, а мне он ещё нужен... fInp.peek() != EOF не работает вообще... Как можно посчитать элементы, подскажите пожалуйста?

#include <cstdlib>
#include <conio.h>
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    char name1[6] = "f.dbl";
    int a = 0;
    int n = 0;

    ifstream fInp;
    fInp.open(name1, ios::in | ios::binary);
    if (!fInp)
    {
        cout << "Error of opening of a input-file "
            << name1;
        cout << "\nPress any key to exit.\n";
        _getch();
        return 1;
    }

    while (fInp.read((char*)&a, sizeof(a))) ///// не работает!!!!!!
    {
        n++;
    }

    //fInp.close();
    //ifstream fInp;
    //fInp.open(name1, ios::in | ios::binary);
    //if (!fInp)
    //{
    //   cout << "Error of opening of a input-file "
    //        << name1;
    //    cout << "\nPress any key to exit.\n";
    //    _getch();
    //    return 1;
    //}

    fInp.close();
    return 0;
}```

Ответы (0 шт):