Cho em hỏi 1 chút về vấn đề đoc ghi file nhị phân.
#include<iostream>
#include<fstream>
using namespace std;
struct hs{
string name;
int tuoi;
};
int main(){
hs a;
hs b;
a.name="Nguyen Van A";
a.tuoi=8;
fstream f;
f.open("abc.txt",ios::out|ios::binary);
f.write((char*)(&a),sizeof(hs));
f.close();
fstream f1;
f1.open("abc.txt",ios::in|ios::binary);
f1.read((char*)(&b),sizeof(hs));
f1.close();
cout<<b.name<<" tuoi: "<<b.tuoi;
return 0;
}
/*int main(){
hs b;
fstream f;
f.open("abc.txt",ios::in|ios::binary);
f.read((char*)(&b),sizeof(hs));
f.close();
cout<<b.name<<" "<<b.tuoi;
}*/
Em có chuong trình như vầy. Em cho chạy thì kết quả bình thường, file abc cũng đã lưu hs a vào file
nhưng vấn đề là ở chỗ, nếu em comment lại hàm main đầu tiên và cho chạy hàm main thứ 2 ( tức là em chỉ đọc file ) thì lại có lỗi , em nghĩ là lỗi do hs b chưa có thông tin mà mình lại bắt cout ra nên có lỗi, nhưng vì em đã chạy hàm main đầu tiên trước nên file đã có thông tin, sau đó em đọc file lưu vào hs b vậy tại sao lại không được.