Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz
  • 0

Odtworzenie programu od nowa


podpalacztv

Pytanie

Opublikowano

Witam mam mały problem dopiero raczkując w programowaniu szukam sposobu na ponowne otworzenie programu (nie chodzi mi o pętle) w momencie kiedy umieszczam w main, main(); program wariuje wyświetlając cały czas 2 komunikaty. Chciałbym w momencie niespełnienia warunków przez x program tak jakby wracał do początku. Jedynym wyjściem jest umieszczenie wszystkiego w pętli?

 

#include <iostream>

using namespace std; 								
double x,c,b;										
int main() {
	
	setlocale(LC_ALL, "POLISH");							
	cout << "Proszę podaj ilość potęg jaką mam wyświetlić" << endl;
	cin >> x;
	if (x>1023|| !cin){										
		cout << "Liczba jest zbyt wielka / niepoprawny wpis.";
		main();
	}												
	cout << "=============================================" << endl;
	
	for (int i=1; i<=x; i++){							
		if (i == 1){								
			b = 2*i;
			cout << b << endl;
		}
		else{							
			b = b*2;
			cout << b << endl;												
		}
	}
	cout << "=============================================" << endl;
	return 0;
	
}

 

1 odpowiedź na to pytanie

Rekomendowane odpowiedzi

Opublikowano

class StartAgain

{

~StartAgain()

{

system("start myexe.exe"); // #include <windows.h>

}

}

 

StartAgain JustNewObject;

 

int main()

{

 

}

 

xDDDDDDD no ale hej destruktor musi być wykonany więc nawet jak zamykasz program z X 

to destruktor powinien się wykonać :)... w destruktorze możesz dodać dodatkowe warunki do sprawdzenia

 

 

inna opcja to wykonanie poprawnego Maina...

Main to nie funkcja gdzie wpierdzielasz wszystko co masz a funkcja która ma za zadanie obsługę komunikacji i główne decyzje

 

bool Program()

{

 // stuff

}

 

int main()

{

while(Program());

}

 

w ten sposób twój program będzie wykonywać cały czas funkcję "program" do czasu aż zwróci ona False

return false;

 

 

 

co rozumiesz przez "program wariuje"???

Jeśli podasz cinowi błędne dane to będzie on pomijany więc musisz go wyczyścić...

 

Tutaj masz fajna funkcja która kiedyś napisałem znajomemu:

 

 


 


int GetInt()
{int n=0, // for input
     i=0; // for message loop
//=====================================
std::cout<<"Enter int: ";             // first try
	std::cin>>n;                      //
//=====================================
if(!(std::cin.fail()))return n;       // if not failed return n
 std::cin.clear();                    // clear cin
 std::cin.ignore();                   // ignore shit in cin
while(std::cin.get()!='\n'){continue;}// total clear of cin
std::cout<<"Enter =ONLY= Int: ";      // error message
//=====================================
	while(true){                      // error enter loop
		std::cin>>n;                  //
	 if(std::cin.fail()){             //
 std::cin.clear();                    //
 std::cin.ignore();                   //
while(std::cin.get()!='\n'){continue;}// total clear of cin
	switch(i){// The Meow English is not Tha Best !
case 0 ... 5:     std::cout<<"Bad input, try again    : "; break;
case 6 ... 7:     std::cout<<"Gosh, =ONLY= INT        : "; break;
case 8:           std::cout<<"Keep going, Only int    : "; break;
case 9:           std::cout<<"Just enter ONE NUMBER   : "; break;
case 10:          std::cout<<"Can u finally enter Int : "; break;
case 11:          std::cout<<"How many times? I-N-T   : "; break;
case 12:          std::cout<<"ONLY integer number     : "; break;
case 13:          std::cout<<"Thats rly stupid... Int : "; break;
case 14:          std::cout<<"Can't u finaly enter int: "; break;
case 15 ... 20:   std::cout<<"I'm waiting for Int     : "; break;
case 21 ... 25:   std::cout<<"Enter integral number   : "; break;
case 26:          std::cout<<"Pls, do it for me INT   : "; break;
case 27:          std::cout<<"Yeeeeeeeee.... Int      : "; break;
case 28:          std::cout<<"I'm not gonna stop.. INT: "; break;
case 29:          std::cout<<"Enter this f*Meow* Int  : "; break;
case 30 ... 40:   std::cout<<"integer number is needed: "; break;
case 41:          std::cout<<"Heh.. you know what? INT: "; break;
case 42:          std::cout<<"Still waiting for Int   : "; break;
case 43 ... 60:   std::cout<<" ...                    : "; break;
case 61:          std::cout<<"Still here?             : "; break;
case 62:          std::cout<<"And still Entering INT? : "; break;
case 63:          std::cout<<"U know... Meow...       : "; break;
case 64:          std::cout<<"Its already 66 Tries... : "; break;
case 65:          std::cout<<"67. Good Job !          : "; break;
case 66:          std::cout<<"Thats stupid...         : "; break;
case 67:          std::cout<<"ONE MORE AND IM LEAVING : "; break;
case 68:          std::cout<<"PLZ STOP AND ENTER INT  : "; break;
case 69:          std::cout<<"Srsl... just One more...: "; break;
case 70:          std::cout<<"LAST CHANCE ! ENTER INT : "; break;
case 71 ... 340:  std::cout<<"System: ( Enter Int )   : "; break;
case 341:         std::cout<<"Ohh WTF 343 ? xD        : "; break;
	default:  // Add more if u want xD
		std::cout<<"Nicole is my Cat, Enter integral number: "; break;
	};i++;    // Wanna see my Cat? :3
	continue;}
		else{
			return n;
		} // Hello //
	} //   I'm  //
} //   Tobi  //

int main()
{
	std::cout<< GetInt()<<std::endl;
}

 

 

Stary ale powinien działać :)...

Jak chcesz to sobie pozamieniaj komentarze na polskie lub w ogóle je wyeliminuj...

 

//Edit:

... czemu wklejając kod rozwala się on?... let's try again :o

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...