PDA

Visualizza la versione completa : c++ e visual studio


trifabbio
04-05-2008, 22:43
Ciao a tutti,
sto scrivendo un semplice programma il c++ con visual studio solo che ho un problema:
appena mando in esecuzione il mio programma (che per ora fa solo una stampa a video)
mi appare la shell di windows solo per un istante e poi scompare..:confused:
Cosa devo fare? SarÓ un problema di variabili d'ambiente? e se si, come risolvo?
Grazie a tutti
Fabio.

oregon
04-05-2008, 22:54
Usa Ctrl-F5 per avviare il programma ...

MItaly
04-05-2008, 23:04
Subito prima della fine del main (prima del return) inserisci


#ifdef _DEBUG
std::cout<<"Premere Invio per uscire.";
std::cin.sync();
std::cin.ignore();
#endif
.

trifabbio
05-05-2008, 15:45
Ottima la prima risposta,
grazie mille!!

Edgar89
06-05-2008, 22:30
#ifdef _DEBUG
std::cout<<"Premere Invio per uscire.";
std::cin.sync();
std::cin.ignore();
#endif

va bene se lanci il programma solo da visualstudio...

altrimenti se lanci l'exe a parte non penso funzioni ...

prova aggiungendo

system("Pause");

prima di return 0;

MItaly
07-05-2008, 15:24
Originariamente inviato da Edgar89
va bene se lanci il programma solo da visualstudio...

altrimenti se lanci l'exe a parte non penso funzioni ...

Fidati che funziona anche se lanci l'exe a parte. L'#ifdef _DEBUG Ŕ semplicemente per includere quel codice solo nella versione di debug dell'eseguibile: la versione release sarÓ presumibilmente lanciata da riga di comando e l'attesa finale non sarÓ necessaria. Al limite comunque basta togliere #ifdef _DEBUG e #endif.

Edgar89
07-05-2008, 21:24
Originariamente inviato da MItaly
Fidati che funziona anche se lanci l'exe a parte. L'#ifdef _DEBUG Ŕ semplicemente per includere quel codice solo nella versione di debug dell'eseguibile: la versione release sarÓ presumibilmente lanciata da riga di comando e l'attesa finale non sarÓ necessaria. Al limite comunque basta togliere #ifdef _DEBUG e #endif.

si, io per lanciare a parte intendevo doppio clic :P
comunque in generale Ŕ utile la sync, se tipo voglio cambiarte il messaggio "premere un tasto per continuare"
nn lo avevo mai usato

MItaly
07-05-2008, 21:34
La sync svuota il buffer di cin (se prima usi delle funzioni di input formattato Ŕ necessaria, altrimenti la ignore viene bellamente saltata), mentre Ŕ la ignore che fa il vero lavoro di attendere la pressione di Invio.

Edgar89
07-05-2008, 22:24
ok, grazie!
questo i dimostra che non le avevo mai usate... :mame:

Loading