• 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

Aruba Cloud - Virtual Private Server VPS
0 głosów
215 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 1,068 wizyt
0 głosów
2 odpowiedzi 228 wizyt
+3 głosów
1 odpowiedź 319 wizyt
pytanie zadane 3 stycznia 2016 w Sprawy forum przez Javowiec Pasjonat (21,560 p.)

93,327 zapytań

142,323 odpowiedzi

322,396 komentarzy

62,656 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...