Sto provando Visual Studio 2010 compilando un programma C. Dopo aver visualizzato la soluzione nella finestra di comando "DOS", la finestra viene immediatamente chiusa. In Visual Studio 2008, si ottiene il messaggio premere un tasto qualsiasi per continuare e premendo un tasto si chiude la finestra del prompt dei comandi. Come imposto questo comportamento nel 2010?Visual Studio 2010 in uscita dopo la fine del programma
risposta
Dopo un po 'di ricerca su google, ho trovato la soluzione this che non comporta la modifica del codice. Contiene una soluzione che prevede la modifica del file .vcxproj.
Per fare questo da all'interno di Microsoft Visual C++ 2010 Express (sto supponendo che è simile per Visual Studio 2010), aprire il progetto e passare alla seguente menu:
Project->$YOURPROJECTNAME Properties...
->Configuration Properties
->Linker
->System->SubSystem
quindi utilizzare il menu a discesa per selezionare la console (/ SUBSYSTEM: CONSOLE) e applicare la modifica.
"Inizia senza eseguire il debug" dovrebbe fare la cosa giusta ora.
Meraviglioso. Funziona molto bene E ti ho dato anche 1 voto. Sto usando l'edizione Express. – yCalleecharan
Grazie mille per aver segnalato questo bug qui. – yCalleecharan
Questo funziona benissimo per me grazie. C'è un modo per applicare automaticamente questa soluzione a tutti i progetti? – petric
Questo è normale. La finestra della console "DOS" è collegata al tuo programma e dovrebbe terminare quando il tuo programma finisce. Se vuoi che rimanga aperto, devi aggiungere del codice al tuo programma per tenerlo aperto. Tutto quello che devi fare è aggiungere una dichiarazione di stampa e quindi inserire la dichiarazione alla fine del tuo programma.
Ok grazie ... un codice per accettare un input dalla tastiera. – yCalleecharan
Se si avvia l'applicazione senza debugger ("Avvia senza debug"), la finestra della console rimarrà aperta finché non si preme un tasto.
hmmm ... in realtà l'ho fatto. So che questo si applica anche in Visual Studio 2008 e questo "comando" è quello che uso per eseguire i miei programmi. Quindi sono rimasto un po 'sorpreso da questo diverso comportamento nel 2010. – yCalleecharan
Posso confermare che l'utilizzo di "start senza debug" nel 2010 non mantiene la finestra della console aperta dopo l'uscita del programma. – yCalleecharan
Ora, è strano. Non ho lo stesso comportamento sul mio Visual Studio ... –
È possibile aggiungere questa funzione e chiamarlo proprio prima di tornare da main(): versione
void keep_window_open()
{
// clear buffer
fflush(stdin);
printf("Please enter a character to exit\n");
char ch;
ch = getchar();
return;
}
ho adattato da un C++ in un file di intestazione utility sul sito di Bjarne Stroustrup: http://www.stroustrup.com/Programming/std_lib_facilities.h
Grazie mille. Ho dovuto spostare la linea "char ch" subito dopo la parentesi di apertura {dopo la definizione della funzione in modo da evitare errori di compilazione. Penso che la riga "fflush (stdin)" sia in codice C++ e non funzioni bene in C. – yCalleecharan
Hai ragione, secondo le domande frequenti c: http://c-faq.com/stdio/stdinflush. html fflush è definito solo per i flussi di output. Il collegamento fuori da questa voce delle domande frequenti spiega come svuotare l'input: http://c-faq.com/stdio/stdinflush2.html – Darel
Grazie per il collegamento. – yCalleecharan
FWIW, il comando "Avvia senza eseguire debug" funziona in VS2010 esattamente come fa per me nelle precedenti versioni di Visual Studio (ovvero, per un progetto di console la console rimane aperta quando il processo termina con "Premere un tasto qualsiasi per continuare. . ." richiesta).
Quindi, esattamente come stai ottenendo VS2010 per eseguire il programma? Se stai utilizzando la scorciatoia "Ctrl-F5", puoi verificare che Ctrl-F5 sia associato a Debug.StartWithoutDebugging
in "Opzioni/Ambiente/Tastiera"?
Inoltre, si può provare a eseguire il programma utilizzando il menu ("Debug/Avvia senza debug")?
Grazie. Per prima cosa compilo il file, poi lo compilo e poi uso Debug> start senza debugging. Ho assegnato il "Ctrl-F5" come mi hai detto, ma ottengo lo stesso comportamento. Ammetto che è strano come Visual Studio 2005 funziona bene come previsto. – yCalleecharan
@yCalleecharan: Interessante: non sono a conoscenza di un'impostazione che controlli questo. –
Sì, è difficile credere a questo strano comportamento. – yCalleecharan
Il motivo è che ora in VS 2010 è possibile creare un progetto C++ vuoto e generico per impostazione predefinita, senza dover eseguire la procedura guidata. Ciò causa che VS 2010 non imposta correttamente il flag e quindi VS2010 non ha idea che sia un'applicazione console per la quale invierà il solito prompt "Premere un tasto qualsiasi ...".
Questo problema non si verifica se si crea un tipo di progetto Applicazione console dal menu Nuovo progetto.
Ma allora puoi impostare questo flag te stesso e molti altri, tramite Project/Settings, come il post sopra ha risposto correttamente!
Se si desidera che rimanga aperto, è necessario aggiungere codice al programma.Mi piace
#include <stdio.h>
#include <stdlib.h>
... main(...)
{
your codes
.
.
.
system("pause");
}
se aggiungi questo codice, lo schermo nero rimane aperto. "system (" pause ")" all'interno del file di intestazione stdlib.h.
Portare "Start senza di debug" al menu Debug ...
Strumenti >> >> Personalizza i comandi (Tab) >> Barra dei menu (elenco a discesa) >> debug (opzione controlla) >> Aggiungi Comando (pulsante) >> Debug (Elenco categorie) >> Avvia senza debug
Utilizzo di "Avvia senza debug" Consente a VS2010 di visualizzare la frase "Premere un tasto qualsiasi per continuare" prima di uscire.
- 1. Cosa significa "fine linea incoerente" in Visual Studio 2010?
- 2. Installare Visual Studio 2008 DOPO 2010?
- 3. WebsiteSpark & Visual Studio 2010
- 4. GTK # in Visual Studio 2010
- 5. Java in Visual Studio 2010?
- 6. /LinkResource in Visual Studio 2010
- 7. Modifica del tema di Visual Studio 2010
- 8. Arresta Visual Studio dal programma di chiusura dopo il completamento
- 9. Boost in Visual Studio 2010, errore IntelliSense
- 10. visual studio 2010 Impossibile avviare il programma .dll
- 11. Progetto Visual Studio 2010 in Visual Studio 2012
- 12. LNK 2005 in Visual C++ in Visual Studio 2010
- 13. Visual Studio 2012 rispetto a Visual Studio 2010 (delta)
- 14. cos'è la shell di Visual Studio 2010?
- 15. Pubblica programma in Visual Studio
- 16. Integrazione di IronScheme in Visual Studio 2010
- 17. Visual Studio 2010 Macro interrotte dopo l'aggiornamento a Windows 10
- 18. formattazione HTML in Visual Studio 2010
- 19. Modalità C# in Visual Studio 2010 Professional
- 20. "Impossibile navigare verso la definizione" fastidio in Visual Studio 2010
- 21. Visual Studio 2010 trasformazioni web.config (target TransformWebConfig)
- 22. Visual Studio 2010: ProjectItem disponibile
- 23. visual studio 2010: grafico dipendenza
- 24. Tema di Visual Studio 2010 per Visual Studio 2012?
- 25. Ctrl-Backspace Visual Studio 2010
- 26. snprintf e Visual Studio 2010
- 27. Debugger Visual Studio 2010 saltato
- 28. Come scrivere multiline in Visual Studio 2010
- 29. Ankhsvn non integrato in Visual Studio 2010
- 30. Installazione di Visual Studio 2010
Non è diverso in VS2010, premendo Ctrl + F5 si richiama il prompt "premere un tasto qualsiasi" al termine del programma. –
Sì, conosco questa scorciatoia per "start senza debugging" ma nel mio caso la finestra della console viene immediatamente ignorata. Questo è strano. – yCalleecharan