请问这里的文件读写要怎样弄呢? 大概就是结构体的一个链表的文件读写! 高分!!急!!!!! 要C++的! 20
#include<iostream>usingnamespacestd;typedefstructlist{intnumber;charname[10];intyear;...
#include<iostream>
using namespace std;
typedef struct list
{
int number;
char name[10];
int year;
int month;
int day;
int sex;
long telephone;
char address[20];
struct list *next;
}node;
node * pt=new node,*pt2,*newpt,*headpt=NULL,list;
int first=1,s=0;
void read()
{
node* stu=new node;
FILE*pFile;
pFile=fopen("studentdata.dat","w+");
if ( !pFile )
{
cout<<"打开文件失败!";
exit(1);
}
pt=headpt;
rewind(pFile);
for(int i=0;i<s;i++)
fread(&stu[i], sizeof(list), 1, pFile);
for(int j=0;j<s;j++)
{
*(pt->next)=stu[j];
pt=pt->next;
}
fclose(pFile);
cout<<"已从studentdata.dat文件读取数据"<<endl;
}
void write()
{
node* stu=new node;
FILE*pFile;
pFile=fopen("studentdata.dat","w+");
if ( !pFile )
{
cout<<"打开文件失败!";
exit(1);
}
pt=headpt;
for(int j=0;j<s;j++)
{
stu[j]=*(pt->next);
pt=pt->next;
}
rewind(pFile);
for(int i=0;i<s;i++)
fwrite(&stu[i], sizeof(list), 1, pFile);
fclose(pFile);
cout<<"已向studentdata.dat文件写入数据"<<endl;
}
void main()
{
int action;
display();
while(action!=8)
{
cout<<"请选择操作:";
cin>>action;
if(action==1){creat();}
if(action==2){inst();}
if(action==3){dele();}
if(action==4){read();}
if(action==5){write();}
if(action==6){search();}
if(action==7){show();}
if(action==8){exit(1);}
cout<<endl;
}
}
所以才问啊,麻烦2楼改一下 展开
using namespace std;
typedef struct list
{
int number;
char name[10];
int year;
int month;
int day;
int sex;
long telephone;
char address[20];
struct list *next;
}node;
node * pt=new node,*pt2,*newpt,*headpt=NULL,list;
int first=1,s=0;
void read()
{
node* stu=new node;
FILE*pFile;
pFile=fopen("studentdata.dat","w+");
if ( !pFile )
{
cout<<"打开文件失败!";
exit(1);
}
pt=headpt;
rewind(pFile);
for(int i=0;i<s;i++)
fread(&stu[i], sizeof(list), 1, pFile);
for(int j=0;j<s;j++)
{
*(pt->next)=stu[j];
pt=pt->next;
}
fclose(pFile);
cout<<"已从studentdata.dat文件读取数据"<<endl;
}
void write()
{
node* stu=new node;
FILE*pFile;
pFile=fopen("studentdata.dat","w+");
if ( !pFile )
{
cout<<"打开文件失败!";
exit(1);
}
pt=headpt;
for(int j=0;j<s;j++)
{
stu[j]=*(pt->next);
pt=pt->next;
}
rewind(pFile);
for(int i=0;i<s;i++)
fwrite(&stu[i], sizeof(list), 1, pFile);
fclose(pFile);
cout<<"已向studentdata.dat文件写入数据"<<endl;
}
void main()
{
int action;
display();
while(action!=8)
{
cout<<"请选择操作:";
cin>>action;
if(action==1){creat();}
if(action==2){inst();}
if(action==3){dele();}
if(action==4){read();}
if(action==5){write();}
if(action==6){search();}
if(action==7){show();}
if(action==8){exit(1);}
cout<<endl;
}
}
所以才问啊,麻烦2楼改一下 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询