初夏浅梦i 2020-06-06 17:53 采纳率: 60%
浏览 190
已采纳

请问各位大佬,为什么存不进去数组呀!这是什么情况啊

这是相关头文件

#pragma once
#include<string>
#include<iostream>
#include"User.h"
#include"SafeSystem.h"
using namespace std;

class oneaccount
{
public:
    User accpass[1000];
    string name;
    string password;
    int accountlen;

    void showlogin();                   //注册
    void loginaccount();                //登录
    void showall();                     //展示所有账号和密码

    oneaccount();
    ~oneaccount();
};

这是相关cpp文件

#include"stdafx.h"
#include"account.h"
#include<string>
using namespace std;

oneaccount::oneaccount()
{
    string accountsz[1000] = { "account1","account2","account3" };
    string passwordsz[1000] = { "password1","password2","password3" };


    for (int i=0; i < 1000; i++)
    {
        accpass[i]._name = accountsz[i];
        accpass[i]._password = passwordsz[i];
    }

    for (accountlen = 0; accountlen < 100; accountlen++)
    {
        if (accountsz[accountlen] == "\0")
        {
            break;
        }
    }
}

void oneaccount::showall()                          //展示账号 密码
{
    for (int i = 0; i < 1000; i++)
    {
        if (accpass[i]._name == "\0")
        {
            break;
        }
        accpass[i].showall();
    }
}

void oneaccount::loginaccount()                         //登录
{

    cout << accountlen<<endl;
    showall();

        while (1)
        {
            string name;
            string password;
            cout << "请输入登录ID:" << endl;
            cin >> name;
            cout << "请输入登录密码:" << endl;
            cin >> password;
            for (int i = 0; i < 1000; i++)
            {
                if (accpass[i]._name == name && accpass[i]._password == password)
                {
                    cout << "登陆成功!!" << endl;
                    break;
                }
                else if (accpass[i]._name == name && accpass[i]._password != password)
                {
                    cout << "密码错误!请检查后重新输入!" << endl;
                    break;
                }
                else if (accpass[i]._name != name && accpass[i]._password != password)
                {
                    system("cls");
                    cout << "账号不存在,请注册后在来登录!!" << endl;
                    cout << "已经自动跳转注册页面!!" << endl;
                    SafeSystem login;
                    login.SignLogin();
                    break;
                }
                else
                {
                    continue;
                }
            }
        }


}

void oneaccount::showlogin()                                    //注册
{


    while (1)
    {
        int len = accountlen;
        string cname;
        string cpassword1;
        string cpassword2;
        cout << "请设置您的ID:" << endl;
        cin >> cname;
        cout << "请设置您的密码:" << endl;
        cin >> cpassword1;
        cout << "请再次确认您的密码:"<<endl;
        cin >> cpassword2;
         if (cpassword1 == cpassword2)
        {
             cout << "注册成功!" << endl;
            accpass[len-1]._name = cname;
            accpass[len-1]._password = cpassword1;

            len++;
            break;
        }
         else if (cpassword1 != cpassword2)
         {
             cout << "前后两次输入密码不一致,请重新设置密码:" << endl;
             continue;
         }
        else
        {
            cout << "出现未知错误!!" << endl;
            break;
        }
    }
}

oneaccount::~oneaccount()
{

}

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-06-06 23:03
    关注

    字符串的比较用strcmp不是==
    而且不能用
    if (accountsz[accountlen] == "\0")
    判断字符串数组中有多少有效的元素

    采纳率太低,之前的回答采纳了,再详细帮你看。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥100 支付宝网页转账系统不识别账号