Сравнение данных с++

Есть файл с данными которые необходимо сравнить с данными вводимыми с клавиатуры Есть код, но он не работает

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 - индекс за пределами заполненного массива.

И вы сравниваете этот незаполненный элемент с введенными данными.

Вам ничего не кажется странным?

Почему бы не построить программу иначе: запрос пароля и логина, сохранение, и далее - в цикле - чтение очередных данных и сравнение с ними? И никакой массив не нужен...

→ Ссылка