• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Dziwny błąd przy tworzeniu folderu

VPS Starter Arubacloud
0 głosów
131 wizyt
pytanie zadane 24 maja 2020 w C i C++ przez Nabuchadonozor Gaduła (3,120 p.)
zamknięte 24 maja 2020 przez Nabuchadonozor

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();
}

 

komentarz zamknięcia: ponieważ przy pierszym zakładaniu konta, plik verification_id.txt nie posiadal zadnej waluty
komentarz 25 maja 2020 przez Majster6918 Gaduła (4,030 p.)
if(1, "Accounts::createAccount->odczyt")

co to za "ify"? 

1 = program uruchomiony

a ten tekst? hmm

komentarz 25 maja 2020 przez Nabuchadonozor Gaduła (3,120 p.)
helped(1, "Accounts::createAccount->check");

helped(int, string); jest takim pomocnym void'em, w miejscu int wpisuje rodzaj problemu, a w jego srodku w switchu wybiera się dany problem, jedynka w tym przypadku sluży jako błąd programu a ten tekst w jedynce będzie się wyświetlać na ekranie, wskazując ładnie gdzie trzeba zajrzeć, w którym miejscu program klepnął :D
komentarz 25 maja 2020 przez Nabuchadonozor Gaduła (3,120 p.)
dopiero początkowa funkcja, mało rozbudowana, ale dodam jeszcze, wybierając 2 zamiast 1, wpisując nazwę koloru po angielsku, tekst w konsoli zmienia kolor na podany i wiele podobnych "wspomagaczy", także dzięki temu kod jest czytelniejszy :)
komentarz 25 maja 2020 przez Majster6918 Gaduła (4,030 p.)
Ale czemu to masz tekst a nie funkcje i do niech argumentu? nie możesz do if'a dać void'a
komentarz 25 maja 2020 przez Majster6918 Gaduła (4,030 p.)
Dobra sorrka nie zauważyłem że masz tam funkcje helped

Podobne pytania

+1 głos
2 odpowiedzi 554 wizyt
0 głosów
2 odpowiedzi 156 wizyt
+3 głosów
1 odpowiedź 279 wizyt
pytanie zadane 3 stycznia 2016 w Sprawy forum przez Javowiec Pasjonat (21,560 p.)

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...