Witam serdecznie,
otóż napotkałem dziwny problem, którego racjonalność ciężko jest wytłumaczyć. Gdy "zakładam konto" w moim programie, za pierwszym razem plik verification.txt (z danymi konta) tworzy się nie w folderze o nazwie ID klienta, tylko w folderze accounts. Każda kolejna próba założenia konta już objawia się sukcesem i tworzy się dla każdego kolejnego nowy folder o nazwie ID klienta i verification.txt w nim jest zawarty. Pytanie dlaczego przy pierwszym koncie taki bug występuje? Wie ktoś może?
void Accounts::createAccount() {
system("cls");
int id = 0;
string hp; // dla zapis
string mail;
string pin;
string path; // sciezka do nowego folderu o nazwie ID klienta
ofstream check; // na wszelki gdyby pliku verification_id.txt nie bylo jeszcze
check.open("accounts/verification_id.txt", ios::app);
if (check.good() == true) check.close();
else helped(1, "Accounts::createAccount->check");
ifstream odczyt; // weryfikacja ID
odczyt.open("accounts/verification_id.txt");
if (odczyt.good() == true) {
odczyt >> id;
odczyt.seekg(0);
odczyt >> path;
odczyt.close();
}
else helped(1, "Accounts::createAccount->odczyt");
id = id + 1;
ofstream zapis;
zapis.open("accounts/verification_id.txt");
if (zapis.good() == true) {
zapis << id;
zapis.close();
}
else helped(1, "Accounts::createAccount->check");
cout << "TWORZENIE KONTA" << endl << endl;
cout << "Podaj adres mail'owy: ";
cin >> mail;
cout << "Wymysl cztero cyfrowe haslo PIN skladajace sie ze znakow od 1 do 9: ";
cin >> pin;
path = "accounts/" + path;
_mkdir(path.c_str());
path = path + "/verification.txt";
ofstream zapis2;
zapis2.open(path.c_str(), ios::out | ios::app);
if (zapis2.good() == true) {
zapis2 << mail << endl;
zapis2 << pin << endl;
zapis2.close();
}
else helped(1, "Accounts::createAccount->zapis2");
Accounts::menu();
}