从文件中读取信息问题
#include<iostream>
#include<cstring>
#include<fstream>
using namespace std;
void check(char id , char pwd[]);
void login();
struct Userinfo
{
int id; //用户ID
int money; //余额
char pwd[7];// 密码
}user[100];
int main()
{
ofstream file;
int i,a;
cout<<"1 就是要写信息进文件 2 就是直接登录"<<endl;
cout<<" 1 or 2 "<<endl;
cin>>a;
if(a==1)
{
for(i=0;i<=3;i++)
{
cout<<"请输入帐户:";
cin>>user[i].id;
cout<<"请输入密码:";
cin>>user[i].pwd ;
//cin.getline(user[i].pwd,sizeof(user[i].pwd));
if(!cin.good())//万一用户输入超过位,则输入流失效,故清理
{
cin.clear();
cin.ignore(1024,'\n');//清除缓冲区
}
cout<<"请输入余额:";
cin>>user[i].money;
}
file.open("test.txt");
if (file.fail())
{
cout<<"不能打开文件!!\n";
exit(1);
}
else
{
for(i=0;i<=3;i++)
file<<user[i].id<<"\t"<<user[i].pwd<<"\t"<<user[i].money<<endl;
}
file.close();
login();
}
else
login();
return 0;
}
void check(int id , char pwd[])
{
ifstream ifile;
int flag=0,i=0;
ifile.open("test.txt");
if(ifile.fail())
{
cout<<"不能打开文件,可能您并未写如数据,或者文件并不存在,请检查!";
exit(1);
}
while(!ifile.eof())
{
if (id==user[i].id)
{
flag=1;
if(!strcmp(pwd,user[i].pwd))
{
cout<<"密码正确";
login();
}
else
{
cout<<"密码不正确";
login();
}
}
i++;
}
if(flag==0)
cout<<"用户名不存在";
}
void login()
{
int user_id;
char user_pwd[20];
cout<<"\n请输入您的用名户: ";
cin>>user_id;
cout<<"请输入密码: ";
cin>>user_pwd;
check(user_id,user_pwd);
}
主要应该是在 check( ) 这个函数出了问题,但是不知道怎么改