在写一个简单的聊天项目的登录界面和帐号注册。现在写了点,运行的时候注册完用注册过的帐号登录不成功

在写一个简单的聊天项目的登录界面和帐号注册。现在写了点,运行的时候注册完用注册过的的帐号登录不上。写了个遍历函数,打印出来的是乱码的。请各位指点。
==============================================主函数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();

}

查看全部
u010050884
AI程小橙
2015/07/09 11:41
  • linux
  • 点赞
  • 收藏
  • 回答
    私信

4个回复