View Full Version : Piccolo semplice problema con C, aiuto =(
Narancia1
30-12-2004, 14:33
Ciao ragazzi ho un piccolo problema con il linguaggio C e spero che voi riuscite ad aiutarmi
Ho comprato un buon libro per imparare di Deitel & Deitel e come compilatore ho scaricato il Dev-C++ (ultima versione)
Solo che già il primo semplicissimo programma per esercitarmi non mi riesce :D
prendiamo per esempio questo
#include <stdio.h>
/* function main begins program execution */
int main( void )
{
printf( "Welcome to C!\n" );
return 0; /* indicate that program ended successfully */
} /* end function main */
Come risultato dovrebbe darmi una schermata " Welcome to C " e invece una volta compilato ed eseguito mi appare solo una schermata dos velocissima che poi scompare. E così succede con tutti i programmi che ho provato . Per esempio nel programma della somma di due interti dopo avero messo il valore del primo intero e del secondo al momento della somma scompare di nuovo tutto.
Sapete dirmi a cosa può essere dovuto? Il libro dice che i loro programmi C sono scritti su UNIX ma non ci dovrebbero essere problemi per che sono su piattaforma windows. Oppure è il compilatore?
Vi prego un aiuto che non so che fare :mc:
Spero di essermi spiegato, vi ringrazio :)
beppegrillo
30-12-2004, 14:59
Aggiungi
#include <strdlib.h>
e
system("pause") alla fine se sei su windows.
Ziosilvio
30-12-2004, 15:22
Ci sono almeno altri due metodi.
Uno: Apri il Prompt dei comandi, ti sposti nella cartella in cui c'e' il programma compilato, e lo lanci da li' (scrivi il nome del .exe).
Due: aggiungi:
while (getchar() != '\n')
;
e premi Invio quando vuoi far terminare il programma lanciato (questo va bene anche se non sei sotto Windows).
Narancia1
30-12-2004, 16:12
vi ringrazio per le risposte
Se faccio come dice Ziosilvio (aprendo dal dos l'exe) funziona benissimo mentre negli altri due modi non va.
Con il
while (getchar() != '\n')
;
funziona, non da errori nella compilazione ma da lo stesso problema. In che punto del programma devo inserire questo pezzo di codice?
Mentre con il system("pause") mi da problemi anche nella compilazione :cry:
Scusatemi tanto ma abbiate un po di pazienza con me. Sono davvero alle prime armi e cerco di capire =))
vi ringrazio ancora, Ciao!
Ziosilvio
30-12-2004, 17:37
Originariamente inviato da Narancia1
Con il
while (getchar() != '\n')
;
funziona, non da errori nella compilazione ma da lo stesso problema. In che punto del programma devo inserire questo pezzo di codice?
Subito prima del return.
A proposito: usa il tag "code" per evidenziare le parti di programma.
DanieleC88
30-12-2004, 22:54
Originariamente inviato da Narancia1
Mentre con il system("pause") mi da problemi anche nella compilazione :cry:
Strano, non dovrebbe. Puoi mandarci l'errore che MinGW ti dà?
Scusatemi tanto ma abbiate un po di pazienza con me. Sono davvero alle prime armi e cerco di capire =))
Figurati, no problem! Chiedi quanto puoi, senza farti problemi. Io ho imparato davvero tantissimo da questo forum, gli utenti sono esperti e disponibili.
vi ringrazio ancora, Ciao!
Ciao!
VegetaSSJ5
31-12-2004, 00:16
Originariamente inviato da beppegrillo
Aggiungi
#include <strdlib.h>
e
system("pause") alla fine se sei su windows.
#include <stdlib.h>
Bisogna includere stdlib.h per usare system, che pero ti fa scrivere codice non standard...
una soluzione alternativa è usare MinGWDeveloperStudio come editor, che ha lo stesso compilatore di devCpp ma quando esegue i programmi ferma la finestra del dos automaticamente...non capisco perche pure devcpp non introduca questa caratteristica visto che tutti quelli che iniziano ad usarlo la prima cosa che fanno e scrivere sui forum di programmazione perchè il loro programma 'scompare' subito appena avvviato...
Fenomeno85
31-12-2004, 11:29
va bene anche windows.h
Oppure puoi bloccare con un getch();
esempio:
#include <windows.h>
#include <stdio.h>
#include <conio.h>
int main (void){
/* program */
system ("PAUSE");
/* or */
getch ();
return (0);
}
~§~ Sempre E Solo Lei ~§~
Narancia1
01-01-2005, 15:42
grazie ragazzi!!!! Siete Gentilissimi
Ho risolto con un Getch(); che mi è sembrata la soluzione più facile :p
Adesso ho un'altra domanda
ho scaricato per curiosità il MinGW Developer Studio, solo che non riesco a fare una compilazione!!! Come si fa? Apro un progetto, scelgo Win32 Console Application (ma ci sono diverse scelte, magari sbaglio), scrivo il codice ma come opzione mi da solo build e execute :confused:
come si fa? :confused:
VegetaSSJ5
01-01-2005, 18:01
e infatti a te serve solo build ed execute! ;)
AnonimoVeneziano
01-01-2005, 18:08
Scusa, ma non facevi prima ad aprire un prompt dei comandi ed a lanciare il programma da lì??
Ciao
Originariamente inviato da Narancia1
ho scaricato per curiosità il MinGW Developer Studio, solo che non riesco a fare una compilazione!!! Come si fa? Apro un progetto, scelgo Win32 Console Application (ma ci sono diverse scelte, magari sbaglio), scrivo il codice ma come opzione mi da solo build e execute :confused:
come si fa?
Qui:
http://xoomer.virgilio.it/world721/mingw/mingw.html
trovi una piccola guida che avevo scritto su MinGWDevelperStudio.
Narancia1
02-01-2005, 03:16
ragazzi siete fantastici grazie a voi che mi avete dato l'input iniziale ho capito molte cose =)
si anonimoveneziano potevo fare anche così, solo che mi scocciava un po tutta la procedura. Sono un pigrone informatico e mi vien piu veloce eseguirlo dal programma direttamente :p
Originariamente inviato da Fenomeno85
va bene anche windows.h
Oppure puoi bloccare con un getch();
[/code]
Includere windows.h per utilizzare il getch non mi sembra un buon metodo... Prima di tutto getch non è una funzione della libreria standard...secondo windows.h non è un header standard...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.