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

question-closed Program czeka na jakikolwiek przycisk niewiadomo czemu...

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
0 głosów
89 wizyt
pytanie zadane 24 maja 2020 w C i C++ przez Nabuchadonozor Gaduła (3,120 p.)
zamknięte 24 maja 2020 przez Nabuchadonozor

Cześć forumowicze!

Otóż napotkałem się z pewnym błędem, który nie daje mi spokoju. Program przy wykonywaniu poniższego void'a, po podaniu przec cin'a dwóch informacji, powinien zapisać je do pliku i wyjść ze switcha i czekać na kolejne polecenia w głównym menu. Jednakże on się zatrzymuje, jakby na końcu jego była linijka _getch(); , ale takowej nie ma. Umie ktoś tutaj spostrzec nieprawidłowość? Bo ja już tyle się z tym męczę i nic do głowy nie przychodzi...

void Accounts::createAccount() {
	system("cls");

	int id = 0;

	string hp; // dla zapis
	string mail;
	string pin;

	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.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;

	ofstream zapis2;
	zapis2.open("accounts/verification.txt", ios::out | ios::app);
	if (zapis2.good() == true) {
		zapis2 << id << endl;
		zapis2 << mail << endl;
		zapis2 << pin << endl;

		zapis2.close();
	}
	else helped(1, "?brak klientow || Accounts::createAccount->zapis2");
}

 

komentarz zamknięcia: Accounts::menu(); na końcu void'a Accounts::createAccount zalatwiło sprawę :)
komentarz 24 maja 2020 przez Nabuchadonozor Gaduła (3,120 p.)
Sprawdzając, w którym momencie mogłoby dojść do nieprawidłowości, okazało się, że zostawiając w całym voidzie tylko linijke system("cls") (pierwszą), to problem i tak występuje, więc nie tyczy się on kodu void'a...
komentarz 24 maja 2020 przez Nabuchadonozor Gaduła (3,120 p.)

Może to wina void'a od menu?

void Accounts::menu() {
	char hp;

	system("cls");

	cout << "MENU LOGOWANIA DOTYCZACEGO NASZEGO BANKU PIENIEDZY I ZLOTA" << endl;
	cout << "Ponizej widzisz liste, z ktorej wybierz najabrdziej zachecajacy numerek." << endl;
	cout << "1. LOGOWANIE" << endl;
	cout << "2. TWORZENIE KONTA" << endl;
	cout << "3. ZAPOMNIALES DANYCH LOGOWANIA KONTA? POMOZEMY CI JE USTALIC" << endl;
	cout << "I na co sie zdecydowales?";
	hp = _getch();

	switch (hp) {
	case '1':
		break;
	case '2':
		Accounts::createAccount();
		break;
	default:
		if (hp == 27) exit(0);
		cout << endl << endl << endl << "Nie ma takiego numeru!";
		Sleep(1500);
	}
}

 

Podobne pytania

0 głosów
1 odpowiedź 156 wizyt
pytanie zadane 27 czerwca 2022 w C i C++ przez MichaelM Bywalec (2,180 p.)
0 głosów
1 odpowiedź 98 wizyt
0 głosów
1 odpowiedź 103 wizyt

91,832 zapytań

140,506 odpowiedzi

316,996 komentarzy

61,163 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...