2010-03-02 6 views
5

Sto cercando di seguire insieme a il linguaggio di programmazione C (seconda aggiunta) su una macchina che esegue Vista.Come posso vedere l'output dei miei programmi C usando Dev-C++?

Finora, ho trovato Dev-C++ l'IDE più semplice per farlo. Tuttavia, ho ancora un problema. Ogni volta che eseguo il mio codice compilato, ad esempio: un semplice programma Hello World, viene eseguito, ma la finestra della console sfarfalla sullo schermo e non riesco a vedere l'output.

Come posso vedere l'output dei miei programmi C utilizzando Dev-C++? Ho trovato una soluzione specifica in C++, System("pause"), e una soluzione C davvero brutta, while looping fflush(stdout), ma niente di bello e carino.

+4

Avete considerato un IDE più aggiornato? Dev-C++ non ha avuto un aggiornamento in 5 anni. – Yacoby

+0

Sei sicuro che non duri più di 5 anni? L'ho usato per imparare il C++ nel 2004 e mi è stato detto che non era aggiornato!(Inoltre, 'System' non è specifico per C++. Funzionerà su C e C++, anche se dovrebbe essere evitato perché è specifico per la piattaforma) – Earlz

+0

Che IDE dovrei usare allora? – deeb

risposta

5

In Windows quando un processo termina, il sistema operativo chiude la finestra associata. Questo accade con tutti i programmi (ed è generalmente un comportamento desiderabile), ma le persone non cessano mai di sorprendersi quando capita a quelli che scrivono loro stessi.

Sono forse un po 'aspro; molti IDE eseguono il processo dell'utente in una shell come processo secondario, in modo che non sia proprietario della finestra in modo che non si chiuda quando il processo termina. Anche se questo sarebbe banale, Dev-C++ non lo fa.

Tenere presente che quando Dev-C++ era popolare, questa domanda veniva visualizzata almeno due volte al giorno sul proprio forum di Dev-C++ su Sourceforge. Per questo motivo il forum ha una discussione "Leggi prima" che fornisce una soluzione suggerita tra le soluzioni a molti altri problemi comuni. Dovresti leggerlo here.

Si noti che Dev-C++ è un po 'vecchio e non viene più mantenuto attivamente. Soffre in modo significativo da un'integrazione del debugger quasi inutilizzabile e molto limitata. Il traffico sul forum Dev-C++ è stato interrotto dal rilascio di VC++ 2005 Express e ora è ridotto a due o tre messaggi a settimana anziché i 10 circa del giorno nel 2005. Tutto ciò suggerisce che dovresti considera uno strumento alternativo IMO.

+0

: Dev-C++ è stato biforcuto come [Orwell Dev-C++] (http://orwelldevcpp.blogspot.co.uk/) che è in manutenzione corrente. Non so se risolva altri problemi con Dev-C++. – Clifford

+0

Nel 2016, Dev-C++ sembra chugging lungo bene ... – avgvstvs

+0

@avgvstvs: Dove? Il [progetto originale] (http://www.bloodshed.net/dev/devcpp.html) non è stato aggiornato da anni ed è ancora distribuito con [MinGW-GCC 3.4.2] (https: //gcc.gnu. org/gcc-3.4/changes.html). Il [fork di Orwell Dev-C++] (http://orwelldevcpp.blogspot.co.uk/) è stato aggiornato l'ultima volta ad aprile 2015 ed è distribuito con TDM-GCC 4.9.2. Chugging è forse la parola giusta - non è certo un alveare di attività. Da quando ho scritto questa risposta sono stati rilasciati diversi strumenti gratuiti di Microsoft e altri che sono più aggiornati. L'edizione della Community di Visual Studio 2015 rende Dev-C++ un'età della pietra. – Clifford

2

La cosa più semplice da fare è eseguire il programma direttamente anziché tramite l'IDE. Aprire un prompt dei comandi (Start-> Esegui->Cmd.exe -> Invio), cd nella cartella in cui si trova il progetto ed eseguire il programma da lì. In questo modo, quando il programma termina, la finestra del prompt si blocca e puoi leggere tutto l'output.

In alternativa, è anche possibile reindirizzare l'output standard in un file, ma probabilmente non è quello che si sta andando qui.

1

È possibile aprire un prompt dei comandi (Start -> Esegui ->cmd, utilizzare il comando cd per cambiare directory) e chiamare il programma da lì, o di aggiungere una chiamata getchar() alla fine del programma, che aspettare fino a premi INVIO. In Windows, è anche possibile utilizzare system("pause"), che visualizzerà un messaggio "Premere invio per continuare ..." (o qualcosa di simile).

6

Ho inserito uno getchar() alla fine dei miei programmi come un semplice "metodo pausa". A seconda dei dettagli, investigare getchar, getch o getc

+4

IMHO, cambiare il tuo codice per aggirare un comportamento strano nel tuo ambiente di editing non sembra il modo migliore per andare qui. Aggiornamento – bta

4

Usa #include conio.h

Quindi aggiungere getch(); prima return 0;

+0

Oppure, usa lo standard 'getchar()'. O ottenere un IDE migliore. Tutto funziona ... – cha0site

+0

il file di intestazione conio.h non è portabile (si trova solo su una piattaforma Windows), quindi non dovrebbe essere usato. Piuttosto utilizzare solo le funzioni trovate nella libreria C. come 'while (int ch = getchar() && EOF! = ch && '\ n'! = ch); getchar(); 'che cancella lo stdin, quindi attende che l'utente inserisca un carattere finale – user3629249

2

Per Dev-C++, i bit è necessario aggiungere sono: -

all'inizio

#include <stdlib.h> 

E alla punto che vuoi che si fermi, cioè prima alla fine del programma, ma prima della finale}

system("PAUSE"); 

Sarà quindi chiedere di "Premere un tasto per continuare ..."

+0

Scusa, per qualche motivo il sito web non ha gradito la riga" include ".... Devi inserire un" hash " prima di includere quindi

+2

Perché consiglia 'sistema (" pausa ")' quando esistono modi portatili ed efficienti? – md5

2

Aggiungi questo al vostro file di intestazione #include e poi, alla fine, aggiungere questa riga: getch();

0

Quando un programma non mostra o visualizza un'uscita sullo schermo, utilizzare system("pause"); è la soluzione ad esso su un profilo di Windows.

1

Aggiungere una riga getchar(); o system("pause"); prima del return 0; nella funzione principale. Funzionerà per voi.

1

; Funziona ...

#include <iostream> 
using namespace std; 
int main() 
{ 
    int x,y; // (Or whatever variable you want you can) 

la sintassi processo necessario digitare qui allora;

cout << result 

(oppure l'istruzione di risultato output richiesta); usa senza spazio in getchar e altre sintassi.

getchar(); 
} 

Ora è possibile salvare il file con estensione cpp e l'uso Ctrl + F 9 per compilare e quindi utilizzare Ctrl + F 10 per eseguire il programma. Ti mostrerà la finestra di output e non svanirà con un secondo Fino a quando non fai clic su Invio per chiudere la finestra di output.

1

penso che si dovrebbe collegare il progetto in modalità console

basta premere Ctrl + h ed in generale selezionare console scheda.

0

L'uso della linea system("PAUSE") risolverà tale problema e includerà anche la directory di pre processore #include<stdlib.h>.

-1

Bene quando si sta scrivendo un programma c e si desidera che il log di output rimanga invece di sfarfallio, è sufficiente importare il file di intestazione stdlib.h e digitare "system (" PAUSE ");" nel punto in cui si desidera interrompere lo schermo di uscita. Guarda l'esempio . Il seguente programma c semplice stampa il prodotto di 5 e 6 i.e 30 nella finestra di output e arresta la finestra di output.

#include <stdio.h> 
#include <stdlib.h> 
int main() 
{ 
     int a,b,c; 
     a=5;b=6; 
     c=a*b; 
     printf("%d",c); 
     system("PAUSE"); 
     return 0; 
} 

Spero che questo abbia aiutato.

+1

La stessa opzione è espressa nella domanda. – pingul

Problemi correlati