Jump to content
  • 0

pomoc Nekončiaci console program


Guyy

Dotaz

Zdravím, začal som sa znova učiť c++ a narazil som na problém ktorý som pred tým opravil, no už neviem ako. Čo chcem je aby sa program keď dôjde na koniec znova od začiatku spustil, to som spravil cez while. Lenže v tom programe mám input, pomocou ktorého sa spustí daný "script", aby som nevytváral 10x nový project. Takže keď môj kod spustí daný script a ten sa ukončí, tak následne sa ten kód opakuje bez toho aby počkal na další input. Skúšal som nastaviť option na -1 na začiatku while ale ani to nepomohlo.. Ďakujem za rady :)

bool close = false;
int option = -1;
while (!close)
{
	option = -1;
	system("CLS");

	std::cout << "input:\n";
	std::cin >> option;

	switch (option)
	{
		case 0: CreateAccount();
		case 1: Login();
	}
}

 

// Zlá kategória, pardón :D

Edited by Guyy
Link to comment
Share on other sites

4 odpovědí na tuto otázku

Recommended Posts

  • 0

Myslím že problém bude v switch :) chýba ti break, mám dojem že v c++ je potrebný break pre switch

Tj. program sa ti neopakuje ale switch sa presunie na zvolený CASE, vykoná ho a pokračuje ďalej nasledujúcim a nasledujúcim caseom

Moja rada: pridaj si viac výpisov :D alebo debug :)

EDIT//

Ešte môže nastať problém ak miešaš std::cin a inú metódu inputu ako napr. getline

Edited by Quiter
Link to comment
Share on other sites

  • 0
před 10 hodinami, Quiter said:

Myslím že problém bude v switch :) chýba ti break, mám dojem že v c++ je potrebný break pre switch

Tj. program sa ti neopakuje ale switch sa presunie na zvolený CASE, vykoná ho a pokračuje ďalej nasledujúcim a nasledujúcim caseom

Moja rada: pridaj si viac výpisov :D alebo debug :)

EDIT//

Ešte môže nastať problém ak miešaš std::cin a inú metódu inputu ako napr. getline

Ano je potrebný break ja na to tak nejak s Pawn zabúdam, ale vždy keď sa vykonajú aj ostatné tak tam všade dám break ale tým to nieje, pretože kód sa síce dostane hore ale aj tak sa vykonáva do nekonečna bez inputu. Skúšal som na začiatku vypísať akú hodnotu má option, pri prvom spustení -1, potom keď sa mal vykonať znova tak tak isto -1.. Tak isto keď nastavím option na 0 tak to aj tak čaká na input aj keď by rovno mohlo dať switch, lenže pri druhom to nečaká, len sa ten kod vo while opakuje.. Skúšal som to ešte cez pointer, že vždy na konci to vymaže option a na začiatku znova vytvorí ale aj tak nič.. A v celom kóde nemám inú metodu inputu ako cin.

Edited by Guyy
Link to comment
Share on other sites

  • 0

Tento kód:

Spoiler

#include <iostream>

void CreateAccount()
{
    std::cout << "create account" << std::endl;
}

void Login()
{
    std::cout << "login" << std::endl;
}

int main()
{
    bool close = false;
    while (!close)
    {
        system("CLS");

        std::cout << "input:" << std::endl;
        
        int option;
        std::cin >> option;

        switch (option)
        {
            case 0: CreateAccount();
                break;
            case 1: Login();
                break;
        }

        system("pause");
    }
}

 

u mňa vyzeral funkčne.
Vymaže sa obrazovka, počká sa na input, vykoná sa vybraná úloha, počká sa na stlačenie ľubovoľnej klávesy a potom sa to celé opakuje.

Edited by DuFF
Link to comment
Share on other sites

  • 0
před 2 hodinami, DuFF said:

Tento kód:

  Opětovně skrýt obsah


#include <iostream>

void CreateAccount()
{
    std::cout << "create account" << std::endl;
}

void Login()
{
    std::cout << "login" << std::endl;
}

int main()
{
    bool close = false;
    while (!close)
    {
        system("CLS");

        std::cout << "input:" << std::endl;
        
        int option;
        std::cin >> option;

        switch (option)
        {
            case 0: CreateAccount();
                break;
            case 1: Login();
                break;
        }

        system("pause");
    }
}

 

u mňa vyzeral funkčne.
Vymaže sa obrazovka, počká sa na input, vykoná sa vybraná úloha, počká sa na stlačenie ľubovoľnej klávesy a potom sa to celé opakuje.

Akože aj mne ide tvoj kód normálne.. Dobre nechcel som "zrobte to za mňa" preto som dal zjednoduchčený kód aby mi tu nikto nedal kod na skopirovanie ale tak asi sa to inač nedá pretože ja fakt nevidím kde mám chybu.. 

void CreateAccount() {

	system("CLS");
	AikoSignature(); // len text

	std::string name;
	int cardnum, mobilenumber, expirationdate;
	bool mobile;
	//add_account(std::string name, int cardnum, std::string expirationdate, bool mobile = false);
	std::cout << "Create new accout..\n";
	std::cout << "What's your first name ?\n";
	std::cin >> name;
	std::cout << "Hi " << name << ", can you tell me your mobile number ?\n";
	std::cin >> mobilenumber;
	std::cout << name << ", what card number do you want to have ?\n";
	std::cin >> cardnum;
	std::cout << name << ", tell us expiration year of your card you would like ?\n";
	std::cin >> expirationdate;
	std::cout << name << ", would you like to use paying with mobile ? (y / n)\n";
	std::cin >> mobile;

	Bank account;
	account.add_account(name, mobilenumber, cardnum, expirationdate, mobile); // zapisanie premenných
	std::cout << "\nOkay " << name << ", your account was successfully created. Please go to Login page.\n";
	std::cout << "Thank you for using our services. You will be redirected to main screen.\n";
}

void BankingSystem() {

	bool closebank = false;
	while(!closebank)
	{
		system("CLS");
		AikoSignature();

		std::cout << "Welcome user to Aiko's Bank System. Select one of the options:\n";
		std::cout << "0) Create new account\n";
		std::cout << "1) Deposit money\n";
		std::cout << "2) Withdraw money\n";
		std::cout << "3) Check balance\n";
		std::cout << "4) Check custom data [EXPERIMENTAL]\n";

		int option;
		std::cin >> option;

		switch (option)
		{
		case 0: CreateAccount(); 
			break;
		}

		system("pause");
	}
}

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...