Отсутсвует оператор ">>", "&&", соответсвующий этим операндам

Рейтинг: 0Ответов: 1Опубликовано: 02.07.2023

Я только начал учить программирование и не могу понять в чём ошибка, хоть и понимаю что ошибка скорее всего в моём говнокоде. Я пытался просто как для практики создать псевдо систему аккаунтов. Если есть вопросы по коду пишите, потому что я не уверен что мой код вообще читабельный.

int main() {
    setlocale(LC_ALL, "UA");

        string login[500000];
        int password[500000];
        int i = 0;
        string* accLogin = new string;
        int* accPassword = new int;
        bool account_data = false;

        while(i < 500000){
            cout << "Login: ";
            cin >> login[i]; cout << endl;
            cout << "Password: ";
            cin >> password[i]; cout << endl;
            i++;
        }

        while (!account_data) {
            cout << "Login: ";
            cin >> accLogin; /*Отсутствует оператор ">>" соответствующий этим операндам */ cout << endl;
            cout << "Password: ";
            cin >> accPassword; /*Отсутствует оператор ">>" соответствующий этим операндам */ cout << endl;
            if (accLogin = login[i] && accPassword = password[i]) { //Там где "&&" пишет "Отсутствует оператор "&&" соответствующий этим операндам"
                account_data = true;
                cout << "You entered your account!" << endl;
                delete accLogin;
                delete accPassword;
            }
            else {
                cout << "Login or password are incorrect! Try again!" << endl;
            }
        }

    return 0;
}

Пытался немного переработать указатели и временные переменные, но это не помгло.

Ответы

▲ 2Принят

Работа с указателями неверная. Если у вас есть указатель на объект, то, грубо говоря, сам объект получается разыменованием...

cin >> *accLogin;

cin >> *accPassword;

if (*accLogin == login[i] && *accPassword == password[i])

(в последней строке обратите внимание на ==, в отличие от =.

Ну и после этого учтите, что такие большие массивы

    string login[500000];
    int password[500000];

стек может и не выдержать, программа слетит при запуске...