Witam. Stworzyłem prosty program z menu 2 użytkowników. Po zalogowania któregokolwiek użytkownika program powinien zapisać dane logowania do pliku (login i hasło). Zapisuje tylko login, hasła nie chce zapisać. Wiem, że gdzieś jest błąd, ale nie umiem sobie z tym poradzić. Proszę o pomoc.
// Midas.cpp : Ten plik zawiera funkcję „main”. W nim rozpoczyna się i kończy wykonywanie programu.
//
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <conio.h>
#include <string>
//#include <Windows.h>
//#include <cstdio>
//#include <string>
using namespace std;
int main()
{
cout << "******************** Ussers: ******************** " << endl;
cout << "********** 1 - Administrator ******************** " << endl;
cout << "********** 2 - Inny uzytkownik ****************** " << endl;
cout << "********** 3 - Exit ***************************** " << endl;
cout << "************************************************* " << endl;
cout << endl;
string login_admin = "admin", login_usser = "usser";
string passwd_admin, passwd_usser;
string correct_passwd_admin = "test123", correct_passwd_usser = "pass123";
int ilosc_logowan = 0;
int menu;
cin >> menu;
ilosc_logowan++; //licznik logowan
//ukrycie hasla pod gwiazdkami
constexpr char c_enter = 13;
constexpr char c_backspace = 8;
char input_character;
if ((login_admin == "admin") || (login_usser == "usser"))
{
cout << "Podaj haslo: " << endl;
}
input_character = _getch();
while (input_character != c_enter)
{
if (input_character == c_backspace && correct_passwd_admin.size() || correct_passwd_usser.size())
{
cout << "\b \b";
correct_passwd_admin.pop_back();
correct_passwd_usser.pop_back();
}
else if (input_character != c_backspace)
{
cout.put('*');
correct_passwd_admin += input_character;
correct_passwd_usser += input_character;
}
input_character = _getch();
}
switch (menu)
{
case 1:
{
cout << "Podaj login administratora: " << endl;
cin >> login_admin;
//cout << "Podaj haslo administratora: " << endl;
//cin >> passwd_admin;
if ((login_admin == "admin") && (passwd_admin == correct_passwd_admin)) //sprawdzanie poprawnosci loginu i hasla uzytkownika - "admin"
{
cout << endl;
cout << "Przyznany dostep. " << endl;
cout << "Zalogowales sie za: " << ilosc_logowan << " razem. " << endl;
cout << endl;
}
else
{
cout << endl;
cout << "Wprowadz poprawne dane logowania uzytkownika: Administrator." << endl;
}
//zapis do pliku uzytkownika -"admin"
fstream plik_admin; //zmienna plikowa potrzebna dla kompilkatora
plik_admin.open("log_admin.txt", ios::out | ios::app); //otwarcie pliku i zapis do niego, jezeli pliku nie bylo to zostanie stworzony
plik_admin << login_admin << endl; //zapisz login
plik_admin << passwd_admin << endl; //zapisz pass
plik_admin.close(); //zamykanie otwrtego pliku
break;
}
case 2:
{
cout << "Podaj login uzytkownika: " << endl;
cin >> login_usser;
//cout << "Podaj haslo uzytkownika: " << endl;
//cin >> passwd_user;
if ((login_usser == "usser") && (passwd_usser == correct_passwd_usser)) //sprawdzanie poprawnosci loginu i hasla uzytkownika - "user"
{
cout << endl;
cout << "Przyznany dostep. " << endl;
cout << "Zalogowales sie za: " << ilosc_logowan << " razem. " << endl;
cout << endl;
}
else
{
cout << endl;
cout << "Wprowadz poprawne dane logowania: Inny uzytkownik. " << endl;
}
//zapis do pliku uzytkownika -"user"
fstream plik_usser; //zmienna plikowa potrzebna dla kompilkatora
plik_usser.open("log_user.txt", ios::out | ios::app); //otwarcie pliku i zapis do niego, jezeli pliku nie bylo to zostanie stworzony
plik_usser << login_usser << endl; //zapisz login
plik_usser << correct_passwd_usser << endl; //zapisz pass
plik_usser.close(); //zamykanie otwrtego pliku
break;
}
case 3:
{
cout << "Exit " << endl;
break;
}
default:
{
cout << "Nie ma takiej opcji wyboru. " << endl;
break;
}
}
system("pause");
return 0;
}