Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Prekidanje programa

[es] :: C/C++ programiranje :: Prekidanje programa

[ Pregleda: 2556 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vbvlada
Petrović Vladimir
Beograd

Član broj: 59233
Poruke: 209
*.beotel.net.



Profil

icon Prekidanje programa28.08.2006. u 10:19 - pre 214 meseci
Imam jedan slozeniji program ,neka igrica slicna sahu,znaci imam 14 klasa,program je u DOS-u i voleo bih da znam kako da prekinem program u svakom trenutku(tj. dok traje igra),jer ne zelim da ga gasim na divljaka...
Da li ce to biti na ESC taster ili nesto drugo,ne znam ni ja,ako neko ima predlog bio bih mu zahvalan...
A vi,kako 'te?
 
Odgovor na temu

djalfirevic

Član broj: 76932
Poruke: 497
*.vdial.verat.net.



Profil

icon Re: Prekidanje programa28.08.2006. u 14:06 - pre 214 meseci
Citat:
vbvlada: Imam jedan slozeniji program ,neka igrica slicna sahu,znaci imam 14 klasa,program je u DOS-u i voleo bih da znam kako da prekinem program u svakom trenutku(tj. dok traje igra),jer ne zelim da ga gasim na divljaka...
Da li ce to biti na ESC taster ili nesto drugo,ne znam ni ja,ako neko ima predlog bio bih mu zahvalan...


Uh bre.... pa daj makar deo tog koda...

Primera radi...

Code:

int void main(){
       //ukoliko bi recimo hteo sada nasilno da prekines program mogao bi recimo da uradis
       return EXIT_SUCCESS;
}


Dao sam ti banalan primer, ali moramo da znamo kako ti je kod organizovan kako bi to izveo...
 
Odgovor na temu

toxi_programer
Nemanja Todić
Beograd

Član broj: 104396
Poruke: 464
*.smin.sezampro.yu.

Sajt: www.articles411.com


+8 Profil

icon Re: Prekidanje programa28.08.2006. u 16:12 - pre 214 meseci
Ne moze da se koristi return EXIT_SUCCESS; to jes moze ali samo u main-u( u ostalim ce slucajevima ce da, jel, vrati 0)
Pisi :
exit(1); // izlazi sa indikacijom greske
exit(0); // izlazenje bez indikacije greske
 
Odgovor na temu

Mali Misha
Mihajlo Anđelković
NBGD

Član broj: 79396
Poruke: 379
*.ptt.yu.

ICQ: 195487525
Sajt: cpptea.com


+1 Profil

icon Re: Prekidanje programa28.08.2006. u 17:08 - pre 214 meseci
Drugi način je preko try-throw-catch, ali je i komplikovaniji.

Pragmatičnije..

Ako ti npr. treba da se program prekida određenim tasterom, mogao bi da pustiš da celokupan proces diše kroz jedan while koji bi prvo ispitivao da li je ESC pritisnuto, i u tom slučaju prekinuo program, a u suprotnom puštao program da ide svojim tokom. Ovo naravno neće pomoći ako se neka od intermezzo funkcija "zabode", ali bi i u svakoj petlji koja bi bila potencijalno problematična mogao da postaviš kontrolu..

Code:
// --- samo koncept ---

#include <stdlib.h>

// ...

void uslovniprekid()
{ if(/*ESC pritisnut*/) exit(0); }

#define WHILE(X)  while((uslovniprekid()),(X))

// ...

WHILE( /* uslov */ )
{
    // ...
}

// ...

U praksi gotovo da nema potrebe za ovime.. samo exit ili throw na pravom mestu a i ta dva su retka.
Ipak se ++uje.
 
Odgovor na temu

djalfirevic

Član broj: 76932
Poruke: 497
*.vdial.verat.net.



Profil

icon Re: Prekidanje programa28.08.2006. u 17:37 - pre 214 meseci
Citat:
toxi_programer: Ne moze da se koristi return EXIT_SUCCESS; to jes moze ali samo u main-u( u ostalim ce slucajevima ce da, jel, vrati 0)
Pisi :
exit(1); // izlazi sa indikacijom greske
exit(0); // izlazenje bez indikacije greske


To je tacno. Zato sam i trazio code snippet.
 
Odgovor na temu

toxi_programer
Nemanja Todić
Beograd

Član broj: 104396
Poruke: 464
*.smin.sezampro.yu.

Sajt: www.articles411.com


+8 Profil

icon Re: Prekidanje programa28.08.2006. u 20:41 - pre 214 meseci
Prokleta obrada izuzetaka, mislis pola sata kako da je osmislis a vecina stvari mze i bez nje. :(
 
Odgovor na temu

vbvlada
Petrović Vladimir
Beograd

Član broj: 59233
Poruke: 209
*.beotel.net.



Profil

icon Re: Prekidanje programa29.08.2006. u 00:00 - pre 214 meseci
Hvala svima,mislio sam da postji malo elegantnije resenje,znam i ja sve to ,uradio sam vec tako ...uglavnom,ovo mi je bio domaci zadatak,poslao sam ga pa sta bude...
A vi,kako 'te?
 
Odgovor na temu

DjoleReject
Djordje Knezevic
Zvezdara

Član broj: 85258
Poruke: 309
*.dynamic.sbb.co.yu.



+1 Profil

icon Re: Prekidanje programa30.08.2006. u 00:42 - pre 214 meseci
Ako ti sad uopste nesto znaci, mislim da je najbolje da u frame funkciji (ako si dozvolimo slobodu da tako nazovemo deo koda koji se stalno ponavlja - znaci neka funkcija koja je u stvari jedan potez u igri), ubacis neki bool. Najpre ga deklarises kao globalan: bool kraj = false, pa gde god zelis da omogucis prekid, postavis if(...neki uslov...) kraj = true. Ostaje ti samo da u toj frame funkciji kazes if(kraj) exit(0);
De si Deda...
 
Odgovor na temu

vbvlada
Petrović Vladimir
Beograd

Član broj: 59233
Poruke: 209
*.beotel.net.



Profil

icon Re: Prekidanje programa30.08.2006. u 09:46 - pre 214 meseci
Djole,pa ti kao da si citao moj kod...
Bas sam tako uradio,ali ja sam zamisio da se onda vratim na glavni meni,znaci ne bi moglo exit(),ma znam da moze i to ,ali me je mrzelo da se zezam s tim ,a i prosao mi je rok za slanje zadatka...
A vi,kako 'te?
 
Odgovor na temu

DjoleReject
Djordje Knezevic
Zvezdara

Član broj: 85258
Poruke: 309
*.dynamic.sbb.co.yu.



+1 Profil

icon Re: Prekidanje programa30.08.2006. u 18:48 - pre 214 meseci
Ma ja sam spijun :))) Salim se, to je valjda najlogicnije da se uradi.
A kad bi zeleo da program ne prekine, nego se vrati u glavni meni, onda poziv te frame funkcije odradis ovako:
while(true) { FrameFunction(); if (kraj == true) break; } kraj = false;
nakon ovog dela koda ti se nalazi meni, koji ponovo moze uci u FrameFunc i problem resem... Nije da ti ovo sada pomaze, ali ko zna kad ce opet zatrebati.
De si Deda...
 
Odgovor na temu

vbvlada
Petrović Vladimir
Beograd

Član broj: 59233
Poruke: 209
*.beotel.net.



Profil

icon Re: Prekidanje programa30.08.2006. u 21:54 - pre 214 meseci
Citat:
DjoleReject: Nije da ti ovo sada pomaze, ali ko zna kad ce opet zatrebati.


Naravno,uvek dobro dodje,hvala...
A vi,kako 'te?
 
Odgovor na temu

[es] :: C/C++ programiranje :: Prekidanje programa

[ Pregleda: 2556 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.