View Full Version : shell che sparisce[c++]
nuovoUtente86
30-08-2007, 21:44
lanciando un semplice programma con dev 5 la shell non da il tempo di essere visualizzata e sparisce.
Il problema era sparito passando dall versione 4 alla 5 ma per un problema al pc ho dovuto rifare l' installazione e il problema è ricomparso anche con la 5.
il codice è semplice
#include <iostream>
main()
{
cout << " CIAO MONDO! ";
return (0);
}
il problema è che il tuo programma si chiude dopo pochi millisecondi :D alcuni IDE fanno in modo che la shell rimanga aperta artificiosamente.. comunque basta mettere un getchar() alla fine
ps. ti consiglio code::blocks nightly build comunque
nuovoUtente86
31-08-2007, 00:04
il problema è che il tuo programma si chiude dopo pochi millisecondi :D alcuni IDE fanno in modo che la shell rimanga aperta artificiosamente.. comunque basta mettere un getchar() alla fine
ps. ti consiglio code::blocks nightly build comunque
si con getchar() funziona ottimo..ma è strano che prima andasse anche senza.
Domanda:ma se la shell sparisce cosi velocemente lo standard output cosa è....se non è praticamente leggibile???
si con getchar() funziona ottimo..ma è strano che prima andasse anche senza.
Domanda:ma se la shell sparisce cosi velocemente lo standard output cosa è....se non è praticamente leggibile???
dev5 teneva aperta la shell artificiosamente, ma in realtà il tuo programma era terminato
lo standard output esiste nel lasso di tempo che esiste anche il tuo programma e quindi quando questo termina anche lo standard output sparisce
con getchar() fai in modo che sia necessario premere un tasto prima di terminare il programma (return 0)
ovviamente prima o poi arriverà qualcuno a dire che getchar() è una funzione che si usa in C mentre in C++ bisognerebbe ecc.. :p :D però funziona :read:
nuovoUtente86
31-08-2007, 00:38
provo a rifare un' installazione pulita,su Vista dev ha ancora qualche problemino.
getchar() va benissimo anche perchè poi faccio una piccola interfaccia grafica.Cmq per tenere su la shell in c++ che si dovrebbe fare?
provo a rifare un' installazione pulita,su Vista dev ha ancora qualche problemino.
getchar() va benissimo anche perchè poi faccio una piccola interfaccia grafica.Cmq per tenere su la shell in c++ che si dovrebbe fare?
ah io Vista non l'ho mai visto :fagiano: però devcpp (è questo l'ambiente che usi giusto?) è un pò poco sviluppato... io proverei a installare questo http://forums.codeblocks.org/index.php/topic,6802.0.html
comunque sia se hai intenzione di fare un'interfaccia grafica il getchar non serve perchè finchè non termina il programma (ergo finchè non chiudi la finestra) la shell rimane dov'è (sempre che non vuoi nasconderla come fanno la maggiorpare delle applicazioni con GUI)
Code::Blocks ha anche wxSmith, un ottimo designer di interfacce per wxWidgets.
nuovoUtente86
31-08-2007, 00:56
ho trovato il problema.Dev mette alla fine del programma prima del return
system("PAUSE") e io lo cancellavo.
Ma il getchar o un cin è la stessa cosa...a meno che tu non abbia un invio nel buffer ;)
lanciando un semplice programma con dev 5 la shell non da il tempo di essere visualizzata e sparisce.
Il problema era sparito passando dall versione 4 alla 5 ma per un problema al pc ho dovuto rifare l' installazione e il problema è ricomparso anche con la 5.Oh no.....
http://www.hwupgrade.it/forum/showpost.php?p=14522711&postcount=7
nuovoUtente86
31-08-2007, 11:59
dici di lanciare il programma dalla console e non da dev?
dici di lanciare il programma dalla console e non da dev?Dipende molto da come l'app. console interagisce con l'utente. Una app. che magari stampa solo in output delle informazioni è chiaro che ha un tempo di vita brevissimo, mentre una app. che magari gestisce in ciclo un menù in cui si deve scegliere una opzione per terminare esplicitamente, allora non termina immediatamente in modo autonomo.
Nel primo caso io in genere la lancio sempre da una console già aperta, nel secondo caso posso anche lanciarla dall'ambiente di sviluppo.
Discorso diverso è quando dal VC++ faccio il debugging, in quel caso l'esecuzione la gestisco io (breakpoint, step-by-step ecc...), e quindi non "scappa" subito via la console.
Se per motivi tuoi e per comodità nella fase di test del programma vuoi mettere alla fine la attesa di un tasto, fai pure. Ma sappi che a livello pratico è superflua e quando hai l'applicazione pronta in "release" è meglio se la togli l'attesa.
Le applicazioni console, tanto per dire alcune, come xcopy, fc, chkdsk, ping ecc... non hanno di certo la attesa di un tasto alla fine.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.