ورود

View Full Version : فایل دانشجویان



m.khani_121
دوشنبه 24 بهمن 1390, 20:16 عصر
این برنامه میاد اطلاعات نام ، شماره دانشجویی و معدل رو میگیره و بعد شماره دانشجویی میدیم بهش اطلاعات دانشجو رو باید بیاره ! مشکلش میدونین چیه ؟!!!! وقتی میخوای بهش شماره دانشجویی بدی تا بگرده از برنامه خارج میشه .

#include <fstream>
#include <iostream>
#include <stdlib.h>
#include <conio.h>
using namespace std;
struct student
{
char name[21];
int stno;
int ave;
}st;
int main()
{
int no;
fstream out ("student.dat",ios::out | ios::binary);
if(!out)
{
cout<<" cannot !!";
exit(0);
}
cout<<" name , stno , ave , num"<<endl;
while(1)
{
cout<<"name :";
cin.get(st.name,20);
if(!st.name[0])
break;
cout<<endl<<" stno :";
cin>>st.stno;
cout<<endl<<" ave :";
cin>>st.ave;
cin.get();
out.write((char *)&st,sizeof(struct student));
}
out.close();
cout<<" press eny ket to contiue . . .";
getch();
system("cls");
ifstream in("student.dat",ios::in |ios::binary);
cout<<" enter stno : ";
cin>>no;
while(in.read((char *) &st,sizeof(struct student)))
{
if(st.stno==no)
{
cout<<endl<<" name :"<<st.name<<" stno :"<<st.stno<<" ave : "<<st.ave;
break;
}
getch();
}
in.close();

return 0;
}

amin1softco
چهارشنبه 26 بهمن 1390, 07:36 صبح
فک کنم اینم از اون باگ های ورودی خروجی باشه چون این برنامه هیچ مشکلی نداره! مثلاً اگه در این خط خودتون دستی شماره رو مشخص کنید جواب میده مثلاً : no=1;:


cin>>no;

m.khani_121
چهارشنبه 26 بهمن 1390, 10:02 صبح
فک کنم اینم از اون باگ های ورودی خروجی باشه چون این برنامه هیچ مشکلی نداره! مثلاً اگه در این خط خودتون دستی شماره رو مشخص کنید جواب میده مثلاً : no=1;:


cin>>no;



بله اگه no=1 کنم جواب میده ولی من میخوام حالت search داشته باشه ! کاری نمیشه کرد ؟؟؟

amin1softco
چهارشنبه 26 بهمن 1390, 10:36 صبح
کار که خیلی کارا می شه کرد ولی دلیلشو نمی دونم چرا اینطوری می شه!
با cin.clear(); درست می شه :


#include <fstream>
#include <iostream>
#include <stdlib.h>
#include <conio.h>
using namespace std;
struct student
{
char name[21];
int stno;
int ave;
}st;
int main()
{
int no;
fstream out ("student.dat",ios::out | ios::binary);
if(!out)
{
cout<<" cannot !!";
exit(0);
}
cout<<" name , stno , ave , num"<<endl;
while(1)
{
cout<<"name :";
cin.get(st.name,20);
if(!st.name[0])
break;
cout<<endl<<" stno :";
cin>>st.stno;
cout<<endl<<" ave :";
cin>>st.ave;
cin.get();
out.write((char *)&st,sizeof(struct student));
}
out.close();
cout<<" press any key to contiue . . .";
getch();
system("cls");

cout<<" enter stno : ";
cin.clear();
cin>>no;
ifstream in("student.dat",ios::in |ios::binary);
while(in.read((char *) &st,sizeof(struct student)))
{
if(st.stno==no)
{
cout<<endl<<" name :"<<st.name<<" stno :"<<st.stno<<" ave : "<<st.ave;
break;
}
}
getch();
in.close();

return 0;
}