#include<iostream>
#include<fstream>
#include<windows.h>
using namespace std;
#define file_name"结构.txt"
struct information
{
string name;
string uid;
char gender;
};
struct information Information;//两个information有啥区别和作用
bool InitInfo();
bool ReadInfo();
void RecordInfo();
bool WriteInfo(information *Info,int i);//这样一段的作用
int main()
{
int i;
InitInfo();
while(1)
{
cout<<"请选择要进行的操作:\n";
cout<<"1.打印数据到屏幕\n";
cout<<"2.录入数据\n";
cout<<"3.退出程序\n";
cin>>i;
switch(i)
{
case 1:
if(ReadInfo())
{
cout<<"成功读取文件\n";
}
else
{
cout<<"读取文件失败\n";
}
break;
case 2:
RecordInfo();
break;
case 3:
cout<<"输入值非法,请重新输入数字:\n";
}
}
cout<<"初始化失败\n";
return 0;
}
bool InitInfo()
{
Information.name="jincheng";
Information.uid="1998821";
Information.gender='m';
WriteInfo(&Information,0);
}
bool ReadInfo()
{
ifstream in;
in.open(file_name,ios::in);
string x;
while(getline(in,x))
{
cout<<x;
cout<<'\n';
}
in.close();
}
void RecordInfo()
{
cout<<"请输入姓名:\n";
cin>>Information.name;
cout<<"请输入ID:\n";
cin>>Information.uid;
cout<<"请输入性别:\n";
cin>>Information.gender;
WriteInfo(&Information,1);
}
bool WriteInfo(information *Info,int i)
{
ofstream out;
if(i==1)
{
out.open(file_name,ios::app);
}
else
{
out.open(file_name,ios::out);
}
out<<(*Info).name<<" ";
out<<(*Info).uid<<" ";
out<<(*Info).gender<<" \n";
out.close();
}
这是我仿写的一个数组存储函数,但是不够健壮,我想加一个判断性别是否为mMfF,若不是则提示输入非法重新输入直到正确才录入,但是判断是否为mMfF的函数我会写,判断完之后提示重新输入和存储的代码我写出来没报错也无法运行,请教一下该怎么写。