Как считать массив чисел с бинарного файла с помощью метода read()?

void read(int* arr) {
    ifstream file_if;
    file_if.open("arr.txt", ios::binary);
    if (!file_if.is_open())
        cout << "error opening file for reading" << endl;
    else
        file_if.read((char*)&arr, size); 
    file_if.close();
}

size - замер массива;

file_if.read((char*)&arr, size); - чтение из файла сразу в целый массив, до этого была запись в файл "file_of.write((char*)&arr, size);"


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

Автор решения: Dmitry Shevchenko

file_if.read((char*)arr, size * sizeof(int)); - чтение целого массива;

file_if.read((char*)&arr, sizeof(int)); - чтение одной переменной, той на которой стоит указатель seekg()(по умолчанию в начале файла);

for (int index = 0; index < size; ++index) {file_if.read((char*)arr[index], sizeof(int));}- чтение одного элемента в ваш массив под номером index;
Работает это так: считываем элемент с файла и сохраняем его в массив под номером index, после чего указатель перемещается на sizeof(int);

→ Ссылка