arazz (Normal User)
Pro
Messaggi: 65
Iscritto: 15/05/2009
|
ciao a tutti, ho iniziato da poco a programmare in C, ma ho già qualche problema.
Studiando il manuale Deitel, ho provato a fare un paio di programmi di addizioni , moltiplicazioni, e alcuni con l'if, ma tutti i miei programmi,ogni volta che li compilo, appena finiscono si chiudono.
Vi facico un esempio: nel programma che somma due numeri interi, appena ha letto le variabili dei due numeri interi, e io ho premuto invio, si chiude il programma e io non ho il tempo di leggere il risultato.
So che in pascal, per esempio si può scrivere uses crt all'inizio, o mettere un readln in fondo.. in C esiste qualcosa del genere?
Forse sbaglio proprio a scrivere i programmi.. posto di seguito il codice sorgente del programma delle addizionei =)
Codice sorgente - presumibilmente C++ |
/* ADDIZIONE DI DUE NUMERI INTERI */ #include <stdio.h> int main() { int num1, num2, somma; /* dichiara le variabili*/ printf("inserisci il primo numero intero\n"); /* prompt*/ scanf("%d", &num1); /* legge il primo intero */ printf("inserisci il secondo numero intero\n"); /* prompt */ scanf("%d", &num2); /* legge il secondo intero */ somma = num1 + num2; /* assega il valore all avariabile somma */ printf("la somma dei due numeri inseriti e %d\n", somma); /* visualizza la somma */ return 0; /* indica che il programma è terminato con successo */ }
|
|
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/2009
|
getchar();
prima del return finale
|
|
arazz (Normal User)
Pro
Messaggi: 65
Iscritto: 15/05/2009
|
grazie mille della risposta!
ho inserito la stringa getchar(); come mi hai detto tu subito prima del return, ma il problema di prima persiste..
è probabile, però, che io abbia capito male il collocamento corretto di questa stringa.. l'ho messa così:
Codice sorgente - presumibilmente C++ |
/* ADDIZIONE DI DUE NUMERI INTERI */ #include <stdio.h> int main() { int num1, num2, somma; /* dichiara le variabili*/ printf("inserisci il primo numero intero\n"); /* prompt*/ scanf("%d", &num1); /* legge il primo intero */ printf("inserisci il secondo numero intero\n"); /* prompt */ scanf("%d", &num2); /* legge il secondo intero */ somma = num1 + num2; /* assega il valore all avariabile */ printf("la somma dei due numeri inseriti e %d\n", somma); /* visualizza la somma */ getchar(); return 0; /* indica che il programma è terminato con successo */ }
|
è giusto?
|
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/2009
|
Per un problema legato all'ultima scanf, ripeti due volte la getchar e vedrai che va ...
getchar(); getchar();
return 0;
|
|
arazz (Normal User)
Pro
Messaggi: 65
Iscritto: 15/05/2009
|
provato, mettendo esattamente come hai scritto, ma continua a fare come prima .__.
|
|
gio97 (Ex-Member)
Guru
Messaggi: 715
Iscritto: 25/04/2009
|
apri la shell e trascina il programma dentro, poi lo fai partire da lì
|
|
arazz (Normal User)
Pro
Messaggi: 65
Iscritto: 15/05/2009
|
perdona l'ignoranza, ma cos'è la shell?
|
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/2009
|
Postato originariamente da arazz:
provato, mettendo esattamente come hai scritto, ma continua a fare come prima .__. |
A questo punto mi sembra strano ... comunque, se lavori con Windows, puoi scrivere
system("PAUSE");
prima del return al posto delle getchar ... |
|
gio97 (Ex-Member)
Guru
Messaggi: 715
Iscritto: 25/04/2009
|
oh scusa, su linux c'è la shell: su windows è il prompt di comandi
|
|