pourghasemi
یک شنبه 22 آذر 1394, 10:47 صبح
با سلام
من یک کلاس را در فایل مینویسم وقتی که یک کلاس تنها در فایل باشد خواندن از فایل با این روش صحیح انجام می شود ولی وقتی تعداد بیش از یک کلاس (رکورد ) ذخیره می شود همیشه آخرین رکورد را می حواند و خطای ویندور هم می دهد
فایل cpp ضمیمه شده
با تشکر
mopoorghasemi@gmail.com
#include <iostream>
#include <fstream>
#include <string.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
class stu
{
public:
string name;
string famil;
int num;
};
int main(int argc, char** argv) {
stu st,st2;
ofstream of("t.txt",ios::out);
cin>>st.name>>st.famil>>st.num;
of.write((char *)&st,sizeof(st));
of.write("\n",2);
cin>>st.name>>st.famil>>st.num;
of.write((char *)&st,sizeof(st));
of.write("\n",2);
of.close();
cout<<st2.name;
ifstream iff("t.txt",ios::in);
cout<<iff.tellg();
iff.getline((char *)&st2,sizeof(st2));
cout<<st2.name<<" "<<st2.famil<<" " <<st.num;
return 0;
}
من یک کلاس را در فایل مینویسم وقتی که یک کلاس تنها در فایل باشد خواندن از فایل با این روش صحیح انجام می شود ولی وقتی تعداد بیش از یک کلاس (رکورد ) ذخیره می شود همیشه آخرین رکورد را می حواند و خطای ویندور هم می دهد
فایل cpp ضمیمه شده
با تشکر
mopoorghasemi@gmail.com
#include <iostream>
#include <fstream>
#include <string.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
class stu
{
public:
string name;
string famil;
int num;
};
int main(int argc, char** argv) {
stu st,st2;
ofstream of("t.txt",ios::out);
cin>>st.name>>st.famil>>st.num;
of.write((char *)&st,sizeof(st));
of.write("\n",2);
cin>>st.name>>st.famil>>st.num;
of.write((char *)&st,sizeof(st));
of.write("\n",2);
of.close();
cout<<st2.name;
ifstream iff("t.txt",ios::in);
cout<<iff.tellg();
iff.getline((char *)&st2,sizeof(st2));
cout<<st2.name<<" "<<st2.famil<<" " <<st.num;
return 0;
}