从文件中读取信息问题

wu209000 2007-01-10 09:11:51
#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( ) 这个函数出了问题,但是不知道怎么改
...全文
181 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wu209000 2007-01-10
  • 打赏
  • 举报
回复
现在 check 函数的思路就是 两个参数 一个传用户ID 一个传用户密码 然后再开文件 从扫描一遍文件的内容 如果找到用户的ID 再进一步对照相应的密码 密码对的话就提示 密码正确 不对的话就提示密码错误 如果没找到ID就提示 用户不存在 用flag 变量初始值为0来控制查找用户ID的结果 找到就马上赋 1
wu209000 2007-01-10
  • 打赏
  • 举报
回复
本来是一个结构体的啊``所以我就想在读取出来的时候还是得要数组形式 所以才要了 i
wu209000 2007-01-10
  • 打赏
  • 举报
回复
那读取文件的时候应该怎么样操作呢
jixingzhong 2007-01-10
  • 打赏
  • 举报
回复
你的 check 函数什么思路啊 ?

ifstream 这个是干什么用的??

if (id==user[i].id)
...
这个 user[i] 数组是从文件中读取呢, 这样的话,读取文件的过程呢, i是怎么控制的?
还是通过全局共享的, 这样就不需要操作文件了吧?
jixingzhong 2007-01-10
  • 打赏
  • 举报
回复
恩, 楼主这么快就修正了程序啊?

呵呵 ^_^

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧