88Ra 2023-05-25 11:13 采纳率: 100%
浏览 25
已结题

关于#c++#的问题,请各位专家解答!


c++


void code(account* x,char a[6], char b[6])
{
    int ch = 0;
    char  code1[6]{}, code2[6]{}, n;
    cout << "密码:请输入6位数字密码:\n";
    for (n = 0; n < 6;)
    {
        ch = _getch();//输入字符
        if (ch != '\r') {
            code1[n++] = ch;
            printf("*");
        }
    }
    cout << "\n确认密码:请再次输入6位数字密码:\n";

    for (n = 0; n < 6;)
    {
        ch = _getch();//输入字符

        if (ch != '\r') {
            code2[n++] = ch;
            printf("*");
        }
        else {
            break;
        }
    }


    if (strcmp(code1, code2) == 0)
    {
        cout << "\n确认开户\n";
        x[i].code = atoi(code1);
    }
    else
        cout << "\n两次密码不一致,未成功开户!\n";
    }

`为何ATM机的密码板块 核对两次密码这里不行 一直说密码错误
  • 写回答

3条回答 默认 最新

  • qzjhjxj 2023-05-25 11:43
    关注

    这么改,供参考:

    void code(account* x, char a[6], char b[6])
    {
        int ch = 0;
        char  code1[7]{}, code2[7]{}, n;    // 修改
        cout << "密码:请输入6位数字密码:\n";
        for (n = 0; n < 6;)
        {
            ch = _getch();//输入字符
            if (ch != '\r') {
                code1[n++] = ch;
                printf("*");
            }
        }
        code1[n] = '\0';     // 修改
        cout << "\n确认密码:请再次输入6位数字密码:\n";
    
        for (n = 0; n < 6;)
        {
            ch = _getch();//输入字符
    
            if (ch != '\r') {
                code2[n++] = ch;
                printf("*");
            }
            else {
                break;
            }
        }
        code2[n] = '\0';    // 修改
    
        if (strcmp(code1, code2) == 0)
        {
            cout << "\n确认开户\n";
            x[i].code = atoi(code1);
        }
        else
            cout << "\n两次密码不一致,未成功开户!\n";
    }
    
    //`为何ATM机的密码板块 核对两次密码这里不行 一直说密码错误
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月8日
  • 已采纳回答 10月31日
  • 创建了问题 5月25日