PDA

View Full Version : [C]problema esecuzione dei programmi con dev cpp


Profeta11
27-05-2005, 14:14
Il programma utilizzato è dev cpp 4.9.9.2 della bloodshed, il problema è il seguente: una volta che ho fatto la compilazione del codice e non ottengo nessun errore n+ warn, vado a far eseguire il programma... unico problema è che dando o esegui, o doppiocliccando direttametne sull'exe non riesco a vedere nulla :cry:


LA sensazione è che il programma parta e si chiuda immediatamente da solo, però se anche fosse non riesco a capire come risolvere, visto che ho a che fare col c solo adesso che devo dare un esame all'uni :cry:


Help

RaouL_BennetH
27-05-2005, 14:26
Il programma utilizzato è dev cpp 4.9.9.2 della bloodshed, il problema è il seguente: una volta che ho fatto la compilazione del codice e non ottengo nessun errore n+ warn, vado a far eseguire il programma... unico problema è che dando o esegui, o doppiocliccando direttametne sull'exe non riesco a vedere nulla :cry:


LA sensazione è che il programma parta e si chiuda immediatamente da solo, però se anche fosse non riesco a capire come risolvere, visto che ho a che fare col c solo adesso che devo dare un esame all'uni :cry:


Help

Copio/Incollo una risposta che ho pronta per l'evenienza, date le numerose richieste :D

Originariamente inviato da RaouL_BennetH
Perchè stai compilando evidentemente delle console application, ovvero quelle che partono da prompt del dos. Hai tre modi per evitare questo:

1) Ti porti col prompt del dos nella dir dove hai creato l'eseguibile e lo lanci da riga di comando

2) Aggiungi un system("pause") nel sorgente in modo che il terminale rimanga anche dopo l'esecuzione del programma. (ma non è una buona abitudine)

3) Generi un evento che imponga la pressione di un tasto per uscire dal programma (es.: per uscire premi c)

Profeta11
27-05-2005, 14:28
il sospetto ce l'avevo pure io, nel caso volessi usare la terza opzione cosa mi consigli di fare?

Profeta11
27-05-2005, 14:50
ho provato anche a lanciare il programma dal prompt ma niente, appena gli do il nome del programma, mi riscrive l'indirizzo della cartella senza fare altro

RaouL_BennetH
27-05-2005, 16:02
scusa, magari se posti anche il codice forse si capisce meglio. Da quello che dici, restituendoti solo il prompt, probabilmente è il sorgente che non produce nessun output a video.

Profeta11
27-05-2005, 18:29
#include <stdio.h>
int numero;
main( )
{
printf ("inserisci un numero\n");
scanf("%d",&numero);
printf(" il numero che hai scelto e' %d .\n",numero);
}


questo è un piccolo esempio semplice semplice che non va

Dott.Wisem
28-05-2005, 00:45
#include <stdio.h>
int numero;
main( )
{
printf ("inserisci un numero\n");
scanf("%d",&numero);
printf(" il numero che hai scelto e' %d .\n",numero);
}


questo è un piccolo esempio semplice semplice che non va
Ho appena fatto copia e incolla in Dev-Cpp e funziona perfettamente...

Profeta11
28-05-2005, 01:15
ma infatti il codice son sicuro al 101% che funziona, non capisco perchè non me lo voglia far partire -__-

non so, qualche impostazione di windows? ma mi pare strano perchè sull'altro pc c'è solo windows lindo senza robe strane sopra :muro:

Dott.Wisem
28-05-2005, 10:44
Forse la versione di Dev-Cpp che stai usando contiene dei bug. Io l'ho provato sulla 4.9.9.0. Ma poi hai seguito la corretta procedura di creazione progetto?
In pratica, una volta lanciato Dev-Cpp:

Ti crei da qualche parte una cartella vuota in cui inserire il nuovo progetto.

Vai in File -> Nuovo Progetto -> Console Application -> OK.

Selezioni la cartella prima creata per contenere il progetto.

Cancella il codice d'esempio creato automaticamente dal Dev-Cpp e sostituiscilo con il tuo.

Compila e esegui con l'apposito bottone o tramite F9. (credo che ti verrà chiesto se salvare il codice attuale con il nome di 'main.cpp'. Rispondi affermativamente.)

fabriziolivorno40
05-06-2005, 23:57
usa system ("pause"); ecco un programma C++ che ti aiuta a capire come fermare la console e inoltre ti insegna a cambiare il colore di sfondo fatto con dev C++ 4.9.8.0 !

#include <iostream>
#include <conio.c>
using namespace std;// librerie standard

int main()
{


textbackground(RED);// cambia il colore
system("cls");
textcolor(WHITE);

cout <<"SFONDO ROSSO \n\n";

system ("pause");// mette in pausa la console

return 0;
}


:p

71104
06-06-2005, 00:43
#include <stdio.h>
int numero;
main( )
{
printf ("inserisci un numero\n");
scanf("%d",&numero);
printf(" il numero che hai scelto e' %d .\n",numero);
}


questo è un piccolo esempio semplice semplice che non va
ti è stato detto che aggiungere la system("pause"); al termine non è buona abitudine, ma lascia perdere: chi te l'ha detto ha perfettamente ragione, ma il motivo sarebbe che il comando "pause" esiste solo in Windows e quindi su altri OS fa produrre errori alla shell; in genere però nelle università (suppongo che tu sia uno studente, no? :)) si fa così: quando si lavora in Linux non si scrive nulla di aggiuntivo, si fa partire il prog. dalla shell e basta; quando si lavora in Windows si mette la system("pause") alla fine (ma solo x comodità: altrimenti la finestra della shell si chiude subito assieme al processo); quando alla fine consegni il programma devi però ricordarti di togliere la system("pause"), perché in genere i prof fanno i test su Linux! quindi insomma, semplicemente per ora scrivi così: #include <stdio.h>
int numero;
main( )
{
printf ("inserisci un numero\n");
scanf("%d",&numero);
printf(" il numero che hai scelto e' %d .\n",numero);
system("pause");
} ma alla fine togli system("pause").
ciao

fabriziolivorno40
06-06-2005, 02:53
questo che te dici che non funziona a me funzione ovviamente scelgo C non C++ lo compilato con dev C++ 4.9.8.0 la finestra della console mi rimane in pausa naturalmente uso windows xp pro !

#include <stdio.h>
int numero;
main( )
{
printf ("inserisci un numero\n");
scanf("%d",&numero);
printf(" il numero che hai scelto e' %d .\n",numero);
}

:p :

71104
06-06-2005, 12:10
scusa, cerca di essere coerente (:D), io non ho mica detto che su Windows XP la system("pause") non funziona... :)

enigma_sigla
06-06-2005, 14:35
{

cout<<"Per terminare il programma premi q /n";
cin>>quit;
if(quit=q) {
return 0 }

}

fabriziolivorno40
07-06-2005, 03:01
scusa, cerca di essere coerente (:D), io non ho mica detto che su Windows XP la system("pause") non funziona... :)

ciao ci siamo capiti male io non ho detto che te hai detto che su windows non va ma il contrario cioè che te hai detto che su windows va ! :mano:

Fenomeno85
07-06-2005, 14:18
questo che te dici che non funziona a me funzione ovviamente scelgo C non C++ lo compilato con dev C++ 4.9.8.0 la finestra della console mi rimane in pausa naturalmente uso windows xp pro !

#include <stdio.h>
int numero;
main( )
{
printf ("inserisci un numero\n");
scanf("%d",&numero);
printf(" il numero che hai scelto e' %d .\n",numero);
}

:p :

si ma usi anche una versione del dopoguerra di compilatore. Usa gcc aggiornato e vedrai che ti esce :)
in windows per bloccare la finestra un metodo è quello di usare system ("PAUSE");

~§~ Sempre E Solo Lei ~§~

fabriziolivorno40
08-06-2005, 04:38
ciao per quanto riquarda il compilatore sara del dopo querra ma funziona molto meglio di quello nuovo che in fatti non va per niente da errori continui e poi io uso sempre system ("pause"); e ovviamente le nuove using namespace std ; che mi facilitano la compilazione e non mi piace usare <iostream.h> ma <iostream> io amo quando so qualcosa aiutare tutti quindi metto sempre a disposizione le mie conoscenza ma essendo propio all'inizio so pochissimo! :p

Fenomeno85
08-06-2005, 05:09
ciao per quanto riquarda il compilatore sara del dopo querra ma funziona molto meglio di quello nuovo che in fatti non va per niente da errori continui e poi io uso sempre system ("pause"); e ovviamente le nuove using namespace std ; che mi facilitano la compilazione e non mi piace usare <iostream.h> ma <iostream> io amo quando so qualcosa aiutare tutti quindi metto sempre a disposizione le mie conoscenza ma essendo propio all'inizio so pochissimo! :p

se ti da errori sulle nuove versioni disnifica che non stai programmando in modo corretto ;)

~§~ Sempre E Solo Lei ~§~

fabriziolivorno40
09-06-2005, 04:01
chiarisco subito che uso sempre il solito metodo quindi non posso sbagliare
ma per farti un esempio ecco un programmino che col nuovo dev C++ da errori
mentre con il mio no


#include <iostream>
#include <conio.c>
using namespace std;

int main()
{


textbackground(RED);// cambia il colore
system("cls");
textcolor(WHITE);

cout <<"SFONDO ROSSO \n\n";

system ("pause");

return 0;
}

Fenomeno85
09-06-2005, 06:27
non è standard funzioni n :O

guarda msdn

~§~ Sempre E Solo Lei ~§~

sirbone72
09-06-2005, 08:15
Se usi conio.h sei già fuori standard ANSI. . .

Fenomeno85
09-06-2005, 18:25
Se usi conio.h sei già fuori standard ANSI. . .

ok questa la accetto ma le funzioni che lui usa per cambiare colore NON esistono nelle librerie MSDN e quindi se non ci son li e se non si usano particolari compilatori tipo quello della borland che ha funzioni integrate particolari quel codice NON si compila :)


~§~ Sempre E Solo Lei ~§~

RaouL_BennetH
09-06-2005, 18:37
EDIT

Fenomeno85
09-06-2005, 19:44
dato che qui si lavora in un determinato modo ecco a voi il modo top secret mandato da Allen appena un secondo fa ... mica da uno qualunque per far comparire il testo giallo :eekk:
O gente non fate danni :asd: e non lo divulgate :asd:



#include <iostream>
#include <stdlib.h>
#include <windows.h>
#include <Wincon.h>
using namespace std;

int main(int argc, char *argv[])
{

HWND hWindow = GetForegroundWindow ();
SetConsoleTextAttribute (GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN);

SetWindowText(hWindow,"Annibal the cannibal");
printf ("\nSpero che ti piaccia sta cosa asd \n\n");
system("PAUSE");
return 0;
}



a parte gli scherzi se vuoi anche mettere il colore in backgraound quando scrivi basta che metti BACKGROUND_XXXX dove XXXX è un colore

~§~ Sempre E Solo Lei ~§~

Fenomeno85
09-06-2005, 19:46
ah codice compatibile con qualunque compilatore :D

~§~ Sempre E Solo Lei ~§~

71104
09-06-2005, 19:58
fenomeno, non capisco se scherzi o dici sul serio! guarda che il C non l'ha mica inventato Microsoft! :D
MSDN non è un valido reference di C!

PS: lo sai che per leggere i tuoi post devo coprire quell'avatar con una mano? :oink: mi distrae troppo :oink:

Fenomeno85
09-06-2005, 21:33
fenomeno, non capisco se scherzi o dici sul serio! guarda che il C non l'ha mica inventato Microsoft! :D
MSDN non è un valido reference di C!

PS: lo sai che per leggere i tuoi post devo coprire quell'avatar con una mano? :oink: mi distrae troppo :oink:

no io intendevo che era la chiamata corretta per cambiare il colore :D

~§~ Sempre E Solo Lei ~§~