Binäres speichern/laden möglich bei bitfields?
-
Hi,
wenn ich eine Struktur mit bitfields habe, wie kann ich die abspeichern und wieder aus einer datei binär laden?
-
struct Bitfields { unsigned int A : 1; unsigned int B : 1; unsigned int C : 1; }; int main(){ cout<<"Bitfields"<<sizeof(Bitfields)<<"\n"; Bitfields bit; bit.A=true; bit.B=true; bit.C=false; cout<<bit.A<<" "<<bit.B<<" "<<bit.C<<endl; fstream File("bit.dat", ios::out|ios::binary); if (File.is_open()) File.write((const char*)&bit, sizeof(bit)); File.close(); File.open("bit.dat", ios::in|ios::binary); if (File.is_open()){ Bitfields bitLes; while (File.read((char*)&bitLes, sizeof(bitLes))){ cout<<bitLes.A<<" "<<bitLes.B<<" "<<bitLes.C<<endl; } } }
denk ich mal..
-
musste man nicht drauf achten das die struktur eine große von vollen bytes hat? also z.b. 5 byte?
-
''''''''''''''''''''''''' schrieb:
musste man nicht drauf achten das die struktur eine große von vollen bytes hat? also z.b. 5 byte?
hat sie immer. normalerweise ist ihre grösse durch 'sizeof(int)' ohne rest teilbar.
-
''''''''''''''''''''''''' schrieb:
musste man nicht drauf achten das die struktur eine große von vollen bytes hat? also z.b. 5 byte?
hat sie. wie jedes objekz in c++. deswegen gint sizeof(bits) auch keine kommzahl aus.