利用结构体实现简单的数据录入。
#include <iostream>
#include <fstream>
#include <windows.h>
using namespace std;
#define file_name "结构.txt"
struct information
{
string name;
string uid;
char sex;
};
struct information Information;
bool InitInfo();
bool ReadInfo();
void RecordInfo();
bool WriteInfo(information *Info,int i);
int main()
{
int i;
InitInfo();
//cout<<"请选择要进行的操作:\n";
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:
return 0;
default:
cout<<"输入有误,请重新输入\n";
}
}
//system("pause");
cout<<"初始化失败\n";
return 0;
}
bool InitInfo()
{
Information.name="maoamao";
Information.uid="20122860";
Information.sex='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()
{
//ofstream out;
//out.open(file_name,ios::app);
cout<<"请输入姓名:\n";
cin>>Information.name;
cout<<"请输入ID:\n";
cin>>Information.uid;
cout<<"请输入性别:(M/F)\n";
cin>>Information.sex;
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).sex<<" \n";
out.close();
}