C++输入读取问题
#include<iostream>using namespace std;
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
FILE *fp;
struct student
{ string name;
string yisheng;
double zhenfei;
double yaofei;
double fee;
}a[80];
main(){ void write();
void read();
cout<<"输入信息则输入1,读取信息输入2,退出输入0" ;int g;
cin>>g;
switch(g)
{ case 0:break;
case 1:write();break;
case 2:read();break;
default : cout<<"无此选项"; break;
}
return 0;
}
void write()
{
if((fp=fopen("D:\\date3.txt","wb"))==NULL)
{
printf("文件打开失败\n");
exit(0);
}
int j=1,b;
for(int i=0;j==1;i++)
{
cout<<"请输入你的名字"<<endl;
cin>>a[i].name;
cout<<"请输入你的医生,内科输入1,儿科输入2,产科输入3,全科输入4"<<endl;
cin>>b;
switch(b)
{
case 1: a[i].yisheng="内科";break;
case 2 :a[i].yisheng="儿科";break;
case 3: a[i].yisheng="产科";break;
case 4 :a[i].yisheng="全科";break;
}
cout<<"请输入你的药费"<<endl;
cin>>a[i].yaofei;
cout<<"请输入你的诊费"<<endl;
cin>>a[i].zhenfei;
a[i].fee=a[i].yaofei+a[i].zhenfei;
fwrite(&a[i],sizeof(struct student),1 ,fp);
cout<<"是否继续输入,是则输入1,否则输入0 ";
cin>>j;
}
fclose(fp); main();
}
void read(){int sway;int t,i=0;
if((fp=fopen("D:\\date3.txt","rb"))==NULL)
{
printf("文件打开失败\n");
exit(0);
}for( i=0;feof(fp)==0;i++)
{fread(&a[i],sizeof(struct student),1,fp);} //读取文件内容
int x=1; string name;
while(x==1) { int t=1; //关闭文件
cout<<("请输入需要查询患者的姓名 ");
cin>>name;
for(int d=0;t!=0;d++)
{ if(a[d].name==name)
{
cout<<("你查找的信息:患者姓名为")
<<a[d].name<<endl
<<("你查找的信息:医生为")
<<a[d].yisheng<<endl
<<("你查找的信息:患者药费为")
<<a[d].yaofei<<endl
<<("你查找的信息:医生诊费为")
<<a[d].zhenfei<<endl
<<("你查找的信息:总费用为")
<<a[d].fee<<endl;
t=0;
d=0;
}
}
cout<<("是否继续查询其他学生信息 0 否 1 是");
cin>>x;
} fclose(fp); main();}
我打开程序时可以输入和读取内容,但关掉再次打开时不能读取上一次输入的内容,为什么,新手求教一下