Сравнение данных с++
Есть файл с данными которые необходимо сравнить с данными вводимыми с клавиатуры Есть код, но он не работает
int i = 0;
int j = 0;
ifstream mfile("managersRegister.txt", ios_base::in);
if(!mfile)
{
cout << "\nОшибка открытия файла.";
exit(1);
}
do
{
mfile >> larr[i].login;
mfile >> larr[i].password;
i++;
} while (!mfile.eof());
cout << "\nВведите логин.";
cin >> carr[i].login;
cout << "\nВведите пароль.";
cin >> carr[i].password;
if(larr[i].login == carr[i].login && larr[i].password == carr[i].password)
{
cout << "\nВы авторизовались как менеджер.";
}
else
{
cout << "\nВведены неверные данные.";
exit(1);
}
в консоли делает вывод неверных данных
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Ну, промолчим о том, что неизвестно, какие типы вы используете; будем считать, что все верно.
После цикла чтения i - индекс за пределами заполненного массива.
И вы сравниваете этот незаполненный элемент с введенными данными.
Вам ничего не кажется странным?
Почему бы не построить программу иначе: запрос пароля и логина, сохранение, и далее - в цикле - чтение очередных данных и сравнение с ними? И никакой массив не нужен...