Я создаю базу данных пользователей. Когда я пытаюсь открыть "dataBase.txt"
, который содержит всех пользователей и пароли, консоль появляется (что должно произойти, поскольку это консольное приложение), но в нем говорится, что программа уже завершена. Когда я закрываю его, мой компьютер скажет мне, что программа разбилась. Функция сохраняется в классе.Программа сбой при попытке доступа к файлу, fstream --C++
После некоторой отладки кода, кажется, врезаться в ifstream fin("dataBase.txt");
Ошибка не возвращается из компилятора.
Код для вызываемой функции:
void User_Psw::UserCheck()
{
// read from the database
ifstream fin("dataBase.txt");
while (!fin.eof())
{
fin >> Usernames[sizeOfDatabase] >> Password[sizeOfDatabase];
sizeOfDatabase++; //The Number of lines in .txt
}
// rest of the program
cout << "Username: ";
cin >> username;
getNameIndex();
cout << "Password: ";
cin >> password;
if(!PasswordMatches())
{
cout << "Access denied";
}
}
Я могу добавить больше фрагментов кода, если просил.
Я думаю, что у вас больше ошибок. Посмотрите на «fin». Если все остальное не удается, прочитайте документацию! –
Как объявляются «имена пользователей» и «пароли»? Также 'while (! Fin.eof())', вероятно, не делает то, что, по вашему мнению, делает. – Johnsyweb
Почему такие вещи, как 'Usernames [sizeOfDatabase], заставляют меня думать где-то о том, что есть вектор/deque/array/fixed-array, который должен иметь память за один элемент за свой выделенный размер? – WhozCraig