MFC简单的登录注册实现
2017-04-16 17:05
281 查看
注册
登录
Void CSignDlg::OnSubmit() { CString username;//从文件中读取用户名进行校验,如果输入的用户名在文件已存在则不进行注册 CString sex; bool flag=false;//标记 char * path="username.txt";//文件路径 CFile fp;//使用MFC的CFile将暑假写入文件 fp.Open(path,CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite); fp.SeekToBegin();//移动文件指针位置至文件头 CArchive ar(&fp,CArchive::load);//使用CArchive进行读取文件 UpdateData();//将数据从控件复制到控件变量 //进行左右空格清除 m_Sign_Account.TrimLeft(); m_Sign_Account.TrimRight(); m_Sign_Pass.TrimLeft(); m_Sign_Pass.TrimRight(); //单选框选择并获取其文本 UINT nID=GetCheckedRadioButton(IDC_RADIO_MAN,IDC_RADIO_WOMAN); GetDlgItemText(nID,sex); //校验操作 while(ar.ReadString(username)){ username.TrimLeft(); username.TrimRight(); if(strcmp(username,m_Sign_Account)==0) { flag=true;//如果已存在用户名,则标记flag为true break; }else { ar.ReadString(username);//读取下一行(每一行为一个属性,比如用户名,密码,性别,总共3 个属性) ar.ReadString(username);//读取下一行 } } ar.Close(); fp.SeekToEnd();//文件写入为追加操作,所以写入前必须将文件指针移动至文件尾 if(!flag) { //CFile Write(*str,GetLength())写入 fp.Write(m_Sign_Account,m_Sign_Account.GetLength()); //win虽是\r\n,在写程序只需要\n即可换行 fp.Write("\n",sizeof(char)); fp.Write(m_Sign_Pass,m_Sign_Pass.GetLength()); fp.Write("\n",sizeof(char)); fp.Write(sex,sex.GetLength()); fp.Write("\n",sizeof(char)); fp.Close(); MessageBox("注册成功"); CDialog::OnOK(); } else { MessageBox("用户已存在");//用户已存在提示框,不关闭注册框,可让用户自由选择是否继续注册 } }
登录
void CMyDlg::OnLogin() { UpdateData();//将控件数据复制给控件变量 CString username; CString password; CString sex; //与注册类似操作 bool flag=false; char * path="username.txt"; CFile file; file.Open(path,CFile::modeRead); file.SeekToBegin(); CArchive ar(&file,CArchive::load); //去除数据左右空格数据 m_Login_Account.TrimLeft(); m_Login_Account.TrimRight(); m_Login_Pass.TrimLeft(); m_Login_Pass.TrimRight(); //校验用户密码,与注册校验相同的操作,这里多验证了一步,即校验密码 while(ar.ReadString(username)) { if(ar.ReadString(password)) { username.TrimLeft(); username.TrimRight(); password.TrimLeft(); password.TrimRight(); if(strcmp(username,m_Login_Account)==0 &&strcmp(password,m_Login_Pass)==0) { flag=true; ar.ReadString(sex);//如果用户验证正确,flag=true,并且sex为用户的性别 break; } } ar.ReadString(sex); } //关闭CFile和CArchive ar.Close(); file.Close(); if(flag) { m_Login_Result=m_Login_Account+" "+sex+" "+"已登录";//找到则显示的是用户名+性别+已登录 m_Login_Account="";//成功登录后把用户框和密码框文本清除 m_Login_Pass=""; UpdateData(FALSE);//将数据从控件变量传递给控件 } else{ MessageBox("用户名不存在或密码错误");//用户密码错误或用户不存在提示 } }
相关文章推荐
- 吴昊品工程级别软件项目 Round 5 —— 用JavaScript实现一个简单的注册登录系统
- 我的第一个MFC程序------登录对话框简单实现
- 关于APIcloud中的登录与注册的简单实现
- 7. Swift 基于Xmpp和openfire实现一个简单的登录注册
- 【Java】基于ArrayList实现的简单登录注册
- jsp实现的简单注册登录
- Hibernate+Struts2实现简单登录注册
- JavaWeb + mySQL + Android 实现Android简单的注册登录
- 在web中实现简单的注册,登录功能
- ruby on rails 注册登录模块的简单实现
- python实现的简单用户注册登录系统
- javaweb实现简单的登录注册
- java简单的MVC实现简单的用户注册与登录
- android SQLite实现本地登录注册功能,SQLite简单应用(android studio)
- struts2+spring实现简单用户登录注册
- Hibernate+Struts2实现简单登录注册
- 简单设计实现基于Forms认证的注册登录等用户基础服务
- shell 实现简单的登录和注册功能
- 简单实现用户注册,登录的留言簿
- 用Hibernate与Struts实现简单的项目的登录与注册