Вы открываете файл для чтения (std::ios::in
) оба раза. Когда вы открываете файл для чтения, он должен существовать, иначе открытие не удастся, а это означает, что ваше первое открытие не удастся, поэтому файл не создан.
Ваше второе открытие также не удастся, потому что отсутствующего файла.
Поэтому всегда проверяйте, что открытие файла действительно успешно, и используйте правильный режим открытия:
#include <fstream>
#include <iostream>
class A {
public:
int Arr[10]{};
void print() const {
for(int val : Arr) std::cout << val << ' ';
std::cout << '\n';
}
};
int main() {
A obj;
A temp;
obj.Arr[0] = 1;
// open file for writing and check that opening succeeded
if(std::ofstream fp("temp", std::ios::binary); fp) {
obj.print();
fp.write(reinterpret_cast<const char*>(&obj), sizeof(obj));
}
// open the file for reading and check that opening succeeded
if(std::ifstream fp("temp", std::ios::binary); fp) {
fp.read(reinterpret_cast<char*>(&temp), sizeof(temp));
temp.print();
}
}