在写一个简单的聊天项目的登录界面和帐号注册。现在写了点,运行的时候注册完用注册过的的帐号登录不上。写了个遍历函数,打印出来的是乱码的。请各位指点。
==============================================主函数main.c
#include"ui.h"
int main()
{
RegisteredNODE *Headnode;
Registered registeredinfo;
system("clear");
Headnode=malloc(sizeof(RegisteredNODE));
//Headnode.next=NULL;
//Read(Headnode);
while(1)
{
int ret = Fristui();
switch(ret)
{
case 1:
Loginui();//登录
break;
case 2:
Register();//注册
break;
case 3:
coverlink();//遍历
break;
case 0:
exit(0);
break;
default:
printf("\033[33;32m您的输入有误,请您重新输入:\033[0m");
break;
}
}
}
(ui.c)
#include "ui.h"
int Fristui()
{
system("clear");
int ichoice;
printf("\t\t\t\033[33;32m1.登录\033[0m\n\n");
printf("\t\t\t\033[33;32m2.注册\033[0m\n\n");
// printf("\t\t\t\033[33;32m3.遍历\033[0m\n\n");
printf("\t\t\t\033[33;32m0.退出\033[0m\n\n");
printf("\t\t\t\033[33;32m请输入您的选择:\033[0m\n\n");
printf("\t\t\t");
scanf("%d",&ichoice);
return ichoice;
}
int Loginui(RegisteredNODE *Headnode,Registered registeredinfo)
{
//Read_Personaldata();//把所有的已注册的用户信息读取到链表中
//Read(Headnode);
system("clear");
printf("\t\t\033[33;32m*************欢迎注册HGC聊天帐号***********\033[0m\n\n");
int choice;
int i=3;
char NickName_Input[max]={'\0'};//定义要输入的昵称
char PassWord_Input[max]={'\0'};//定义要输入的密码
char Vercode_Input[max]={'\0'};//定义要输入的验证码
char str[5];//定义生成的验证码
do
{ system("clear");
printf("\t\t\t\033[33;32m昵称:\033[0m");
scanf("%s",NickName_Input);
printf("\n");
printf("\t\t\t\033[33;32m密码:\033[0m");
scanf("%s",PassWord_Input);
printf("\n");
Verification_code(str); //生成验证码
printf("\n");
printf("\t\t\t\033[33;32m请输入您的验证码:\033[0m");
scanf("%s",Vercode_Input);
printf("\n");
if(strcmp(NickName_Input,registeredinfo.NickName_Rge) == 0 && strcmp(PassWord_Input,registeredinfo.PassWord_Rge) == 0 && strcmp(str,Vercode_Input) == 0)
//当昵称、密码、验证码都验证通过时进入聊天功能界面
{
printf("\t\t\t\033[33;32m验证通过!欢迎进入HGC聊天功能界面!\033[0m\n");
sleep(1);
return 1;
//这里要调用聊天功能界面
}
else
{
i--;
system("clear");
if(strcmp(NickName_Input,registeredinfo.NickName_Rge) == 0 && strcmp(PassWord_Input,registeredinfo.PassWord_Rge) != 0 )
//用户昵称正确,而密码错误。打印验证失败,提示密码错误,请重新登录。同时i-1
{
printf("\t\t\t\033[33;31m验证失败!\033[0m\n");
printf("\t\t\t\033[33;32m用户密码错误,请您重新输入!\033[0m\n");
printf("\t\t\t\033[33;34m您还有 %d次 机会重新输入!\033[0m\n",i);
sleep(1);
}
else if(strcmp(NickName_Input,registeredinfo.NickName_Rge) != 0 && strcmp(PassWord_Input,registeredinfo.PassWord_Rge) == 0)
//用户密码正确,而昵称错误。打印验证失败,提示昵称错误,请重新登录。同时i-1
{
printf("\t\t\t\033[33;31m验证失败!\033[0m\n");
printf("\t\t\t\033[33;32m用户密码错误,请您重新输入!\033[0m\n");
printf("\t\t\t\033[33;34m您还有 %d次 机会重新输入!\033[0m\n",i);
sleep(1);
}
else if(strcmp(NickName_Input,registeredinfo.NickName_Rge) == 0 && strcmp(PassWord_Input,registeredinfo.PassWord_Rge) == 0 && strcmp(str,Vercode_Input) != 0)
//用户密码、昵称正确,而验证码错误。打印验证失败,提示验证码错误,请重新登录。
{
printf("\t\t\t\033[33;31m验证失败!\033[0m\n");
printf("\t\t\t\033[33;32m验证码错误,请您重新输入!\033[0m\n");
sleep(1);
}
//用户昵称和密码都错误,打印验证失败。提示可能您没有该系统的帐号,请注册。1是注册,2否,退出重新登录。
else if(strcmp(NickName_Input,registeredinfo.NickName_Rge) != 0 && strcmp(PassWord_Input,registeredinfo.PassWord_Rge) != 0)
{
int choice;
printf("\t\t\t\033[33;31m验证失败,昵称和密码均输入错误!\033[0m\n\n");
printf("\t\t\t\033[33;32m可能您没有该系统的帐号,您愿意注册一个吗?(0:不注册,1:注册\033[0m\n\t");
scanf("%d",&choice);
switch(choice)
{
case 0:
// Loginui();
exit(0);
case 1:
Register();//调用注册函数
break;
default:
printf("\t\t\t\033[33;32m您的输入有误,请您重新输入:\033[0m");
printf("\t\t\t\033[33;32m请按任意键继续......\033[0m\n");
printf("\t");
while(getchar()!='\n');
getchar();
break;
}
}
}
}while(i>0);
Clock();
}