Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.09.2017, 20:39   #1
laketych
Пользователь
 
Регистрация: 22.12.2015
Сообщений: 37
По умолчанию Почему не сравниваются строки?

Код:
#include <iostream>
#include <string>

using namespace std;

void checkUser(string userlogin, string userpassword);
void enterFild(string userlogin, string userpassword);

int main() {
	string userlgn;
	string userpwd;

	checkUser(userlgn, userpwd);

	return 0;
}

void enterFild(string userlogin, string userpassword) {
	cout << "Enter the login: ";
	cin >> userlogin;

	cout << "Enter the password: ";
	cin >> userpassword;
}

void checkUser(string userlogin, string userpassword) {
	string	  loginAdministrator = "Admin";
	string passwordAdministrator = "Admin";

	enterFild(userlogin, userpassword);

	if (userlogin == loginAdministrator && userpassword == passwordAdministrator) {
		cout << "\nYou have been entered as administrator." << endl;
	}
	else {
		for (int verify = 0; verify < 3; verify++) {
			cout << "\nUncorrect login or password.\n\tAttempts to enter left " << 3 - verify << endl;

			enterFild(userlogin, userpassword);
			if (userlogin == loginAdministrator&&userpassword == passwordAdministrator) {
				cout << "\nYou have been entered as administrator." << endl;
				break;
			}

			if (verify == 2) {
				cout << "\n\nAccess denied!The number of attempts is limited!" << endl;
			}

		}
	}
}
Например, если логин и пароль соответствуют - программа пишет: "You have been entered as administrator.".
Перед этим был все работало, но вместо string были char[].
laketych вне форума Ответить с цитированием
Старый 15.09.2017, 21:57   #2
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Потому что функции принимают копии объектов string.

Код:
void enterFild(string &userlogin, string &userpassword) {
ну и для кучи:
Код:
void checkUser(string &userlogin, string &userpassword) {
Croessmah вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему не выводит строки? Си Вероника99 Помощь студентам 5 15.12.2016 15:23
TStringList не сравниваются Karazon C++ Builder 10 24.10.2015 15:40
не сравниваются элементы массива Faton 11 Общие вопросы C/C++ 19 11.11.2012 23:27
почему не удаляет строки ubun PHP 2 22.12.2011 20:39
Почему то пустые строки zotox Помощь студентам 3 24.03.2009 15:26