1 ضمیمه
ارور عجیب در استفاده از فایل در ویژوال استادیو
سلام به همه ی دوستان.
من یه کد ساده دارم که یه یک ابجکت را در فایل ذخیره میکنه و اولین شی را از فایل میخونه و پرینت میکنه.
مشکل عجیب این جاست که برنامه تا زمانی که بسته نشده درست کار میکنه اما بعد از بستن و باز کردن برنامه(یعنی یک فایل ایجاد شدده داریم) برنامه break میشه!
#include <iostream>
#include <fstream>
#include <conio.h>
using namespace std;
class person
{
public:
person();
~person();
char arr[20];
private:
};
person::person()
{
}
person::~person()
{
}
void main()
{
while(1)
{
int a;
cout<<"1-save in file\n2-load";
cin>>a;
if(a==1)
{
person*ob1=new person;
cin>>ob1->arr;
ofstream file;
file.open("aaa.dat",ios::app|ios::binary);
file.write((char*)&ob1,sizeof(class person));
file.close();
}
else
{
person*ob2=new person;
ifstream file;
file.open("aaa.dat",ios::in|ios::binary);
file.read((char*)&ob2,sizeof(class person));
cout<<ob2->arr;
}
}
}
ضمیمه 130747
نقل قول: ارور عجیب در استفاده از فایل در ویژوال استادیو
منظورت اینه که از پوشه دیباگ بالا میاری ارور میده ؟؟؟؟ خب فایل رو باس توی پوشه دیباگ هم کپی کنی ! بعد چیزای مورد نیازش که توی پوشه برنامس رو باس توی دیباگ کپی کنی !
نقل قول: ارور عجیب در استفاده از فایل در ویژوال استادیو
نقل قول:
نوشته شده توسط
USprojeh
منظورت اینه که از پوشه دیباگ بالا میاری ارور میده ؟؟؟؟ خب فایل رو باس توی پوشه دیباگ هم کپی کنی ! بعد چیزای مورد نیازش که توی پوشه برنامس رو باس توی دیباگ کپی کنی !
من برنامه را وقتی برای اولین بار run میکنم همه چی درسته و هم save و هم load درست کار میکنه.اما برای دفعه دوم(یعنی فایل در دفعه اول ایجاد شده بود) که برنامه run میشه میخوام load کنم برنامه break میکنه!
نقل قول: ارور عجیب در استفاده از فایل در ویژوال استادیو
خب اگه میشه بریک رو بذاری عکسشو شاید بتونم کمکت کنم !
نقل قول: ارور عجیب در استفاده از فایل در ویژوال استادیو
نقل قول:
نوشته شده توسط
USprojeh
خب اگه میشه بریک رو بذاری عکسشو شاید بتونم کمکت کنم !
به پست اول اضافه شد.
نقل قول: ارور عجیب در استفاده از فایل در ویژوال استادیو
سلام
obj1 و obj2 هر دو اشاره گر هستند دیگه لازم نیست آدرس اونها گرفته بشه
((char*)ob1,sizeof(class person))
((char*)ob2,sizeof(class person))
نقل قول: ارور عجیب در استفاده از فایل در ویژوال استادیو
نقل قول:
نوشته شده توسط
USprojeh
#include <iostream>
#include <fstream>
#include <conio.h>
using namespace std;
class person
{
public:
person();
~person();
char arr[20];
private:
};
person::person()
{
}
person::~person()
{
}
void main()
{
while(1)
{
int a;
cout<<"1-save in file\n2-load";
cin>>a;
if(a==1)
{
person*ob1=new person();
cin>>ob1->arr;
ofstream file ("aaa.dat",ios::app|ios::binary);
file.write((char*)&ob1->arr,sizeof(person));
file.close();
}
else
{
person*ob2=new person();
ifstream file1 ("aaa.dat",ios::in|ios::binary);
file1.read((char*)&ob2->arr,sizeof(person));
cout<<ob2->arr;
file1.close();
}
}
}
اگه اشتباه نکنم شما متغییر های موجود در کلاس شی را در فایل ذخیره و بازیابی کردی.برنامه اصلی من متغییرهای زیادی در کلاس های مختلف داره که امکان استفاده از روش شما را بهم نمیده.
نقل قول: ارور عجیب در استفاده از فایل در ویژوال استادیو
آره ! میخواستم ببینم چه خبره ! :) !
نقل قول: ارور عجیب در استفاده از فایل در ویژوال استادیو
نقل قول:
نوشته شده توسط
rahnema1
سلام
obj1 و obj2 هر دو اشاره گر هستند دیگه لازم نیست آدرس اونها گرفته بشه
((char*)ob1,sizeof(class person))
((char*)ob2,sizeof(class person))
ممنون از شما.اشتباه بدی بود.1ساعت وقتم رو گرفت!.