vasilopita
پنج شنبه 01 اردیبهشت 1390, 13:09 عصر
سلام من با تابع seekg مشکل دارم یعنی اینکه وقتی توی این تابع به یه شی اشاره میکنم و وقتی از تابع read استفاده می کنم اون شی مورد نظر برنمی گرده و همیشه آخرین شی که وارد شده رو بر می گردونه این سورس برنامه هستش:
#include<iostream>
#include<fstream>
#include<conio.h>
#include<stdio.h>
using namespace std;
struct student
{
char name[21];
int number;
float mark;
bool state;
student()
{
state=0;
}
};
void main()
{
int n;
cout<<"N ?\n";
cin>>n;
student stu1,stu;
ofstream out("test.dat");
ifstream in("test.dat");
for(int i=1;i<=n;i++)
{
cout<<"Name: ";
cin>>stu1.name;
cout<<"Number: ";
cin>>stu1.number;
cout<<"Mark: ";
cin>>stu1.mark;
stu1.state=0;
out.seekp(sizeof(struct student)*stu1.number,ios::beg);
out.write((char*)&stu1,sizeof(struct student));
out.close();
}
cout<<"Enter The Student Number To see The Details\a\n";
cin>>n;
in.seekg(sizeof(struct student)*n,ios::beg);
in.read((char*)&stu1,sizeof(struct student));
cout<<stu1.name<<" "<<stu1.mark<<" "<<stu1.number<<"\n";
in.close();
}
وقتی برنامه رو اجرا می کنم همچین نتیجه ای می ده:
http://www.4shared.com/photo/E_qZUQhJ/Test.htmlhttp://barnamenevis.org/%5CDocuments%20and%20Settings%5CAgent-47%5CDesktop%5Ctest68979
این در صورتی که شماره 2 متعلق به علیه ولی این رضا رو نشون می ده
http://barnamenevis.org/%5CDocuments%20and%20Settings%5CAgent-47%5CDesktop%5Ctest.bmphttp://barnamenevis.org/%5CDocuments%20and%20Settings%5CAgent-47%5CDesktop%5CTesthttp://www.4shared.com/account/photo/E_qZUQhJ/Test.html
#include<iostream>
#include<fstream>
#include<conio.h>
#include<stdio.h>
using namespace std;
struct student
{
char name[21];
int number;
float mark;
bool state;
student()
{
state=0;
}
};
void main()
{
int n;
cout<<"N ?\n";
cin>>n;
student stu1,stu;
ofstream out("test.dat");
ifstream in("test.dat");
for(int i=1;i<=n;i++)
{
cout<<"Name: ";
cin>>stu1.name;
cout<<"Number: ";
cin>>stu1.number;
cout<<"Mark: ";
cin>>stu1.mark;
stu1.state=0;
out.seekp(sizeof(struct student)*stu1.number,ios::beg);
out.write((char*)&stu1,sizeof(struct student));
out.close();
}
cout<<"Enter The Student Number To see The Details\a\n";
cin>>n;
in.seekg(sizeof(struct student)*n,ios::beg);
in.read((char*)&stu1,sizeof(struct student));
cout<<stu1.name<<" "<<stu1.mark<<" "<<stu1.number<<"\n";
in.close();
}
وقتی برنامه رو اجرا می کنم همچین نتیجه ای می ده:
http://www.4shared.com/photo/E_qZUQhJ/Test.htmlhttp://barnamenevis.org/%5CDocuments%20and%20Settings%5CAgent-47%5CDesktop%5Ctest68979
این در صورتی که شماره 2 متعلق به علیه ولی این رضا رو نشون می ده
http://barnamenevis.org/%5CDocuments%20and%20Settings%5CAgent-47%5CDesktop%5Ctest.bmphttp://barnamenevis.org/%5CDocuments%20and%20Settings%5CAgent-47%5CDesktop%5CTesthttp://www.4shared.com/account/photo/E_qZUQhJ/Test.html