PDA

View Full Version : سوال: مشکل درخواندن یک کلاس از فایل در سی پلاس پلاس



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;
}

rahnema1
دوشنبه 23 آذر 1394, 23:05 عصر
سلام
string را به این صورت نمی شه ذخیره کرد
لازمه که آرایه char موجود در اون را ذخیره کنید با تابع c_str به دست میاد یعنی منظورم اینه که باید بیشتر روی این کد کار کنید

string str = "salam";
of.write(str.c_str(), str.size() + 1);