בעיה בעבודה עם קבצים
אני מכניס מידע לקובץ בתור סטראקט פעמיים. כאשר אני מנסה לקרוא מהקובץ נעשית קריאה אחת מיותרת.
אני מכניס מידע לקובץ בתור סטראקט פעמיים. כאשר אני מנסה לקרוא מהקובץ נעשית קריאה אחת מיותרת.
#include <iostream> #include <fstream> using namespace std; struct foo { char blah[30]; }; int main(void) { foo Moo; ofstream Out_File("dat.dat",ios::app); ifstream Input_File; strcpy(Moo.blah,"Moo"); Out_File.write((char *) &Moo,sizeof(foo)); strcpy(Moo.blah,"Moo2"); Out_File.write((char *) &Moo,sizeof(foo)); Out_File.close(); Input_File.open("dat.dat"); while (!Input_File.eof()) { Input_File.read((char *) &Moo, sizeof(foo)); cout << Moo.blah << endl; } return 1; }
הפלט המתקבל הוא:Moo Moo2 Moo2
במקום:Moo Moo2
מדוע זה קורה? האם יש דרך אחרת לקרוא מהקובץ עד תומו? תודה רבה