[Snippet] Pause(); & EndProgram(); Functies

Status
Niet open voor verdere reacties.

maxuploader

Gebruiker
Lid geworden
18 sep 2008
Berichten
316
Hallo Allemaal,

Sinds een tijdje ben ik met progameren overgegaan van Windows naar Linux.
Ik kwam wat problemen tegen zoals, dat je geen:

Code:
system("pause"); of system("pause >nul");

kan gebruiken. Dus na wat zoeken heb ik even snel een gesimuleerde Pause(); gemaakt: (All hoewel werkt alleen met ENTER/RETURN)

Code:
void Pause(int orgmsg)
{
	if(orgmsg == 0)
	{
		char *paus;
		cout << "\n";
		paus = getpass("");
	}
    else if(orgmsg == 1)
	{
		
		char *paus;
		cout << "\n";
		paus = getpass("Press the RETURN key to continue .");
	}
	else
	{
		cout << "Incorrect Pause command!";
	}
}

Als je:
Code:
Pause(1);
zal het bericht verschijnen: Press the RETURN key to continue .
maar als je:
Code:
Pause(0);
gebruitk zal er geen bericht komen en zal de terminal wachten tot je op ENTER/RETUR drukt.

Probleem twee, je runt een programa altijd vanuit de terminal (egg, ./Main)
dus je zal altijd: username@computername:~$ zien. Wil je nou dat dit pas weer verschijnt als de gebruiker op ENTER/RETURN heeft gedrukt... Nog een probleem, voor mensen (zoals ik) die veel met kleuren in de tekst werken op deze manier:
Code:
cout << "\033[01;31mHELLO!";
Dan zal de username@computername:~$ als de laatst gebruikte kleur, om dit en het vorige probleem op te lossen:
Code:
void EndProgram(int pause)
{
	if(pause == 1) {
		cout << "\033[01;37m";
		Pause(0);
		system("clear");
	}
	else if(pause == 0) {
		cout << "\033[01;37m";
		system("clear");
		
	}
}

Zo te gebruiken:
Code:
EndProgram(1); is met pause en EndProgram(0); is zonder pause

WAARSCHUWING: Dit is gebaseerd op Linux (G++/GCC compiler) dus bijvooreeld: system("clear"); moet in windows system("cls"); worden

Ik hoop dat je er wat aan hebt, zoniet ga dan niet zinlose comentaar posten..A.U.B

Maxuploader
 
Gebruik Ncurses voor Linux systemen. Hier wat info over Ncurses:

http://en.wikipedia.org/wiki/Ncurses
http://www.tldp.org/HOWTO/NCURSES-Programming-HOWTO/

Ik heb er nog nooit van gehoord maar volgens mij moet je eerst een curses mode starten (met de initscr functie) als je gebruik wilt maken van de API van deze library en weer sluiten na gebruik (met de endwin functie). De getch functie roepen komt dan op het zelfde neer als het pause command in MS-DOS.
 
@DnB, dat is voor mij geen oplossing, ik wil geen hele libary's toevoegen voor wat functies. (Sorry)
@Johantrax, Thxn voor de tip, zou wel makkelijker kunnen zijn, bedankt ! :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan