Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - chiusura del programma troppo rapida
Forum - C/C++ - chiusura del programma troppo rapida

Pagine: [ 1 2 3 4 5 ] Precedente | Prossimo
Avatar
arazz (Normal User)
Pro


Messaggi: 65
Iscritto: 15/05/2009

Segnala al moderatore
Postato alle 15:58
Venerdì, 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++

  1. /* ADDIZIONE DI DUE NUMERI INTERI */
  2. #include <stdio.h>
  3.  
  4. int main()
  5. {
  6.         int num1, num2, somma; /* dichiara le variabili*/
  7.        
  8.         printf("inserisci il primo numero intero\n"); /* prompt*/
  9.         scanf("%d", &num1); /* legge il primo intero */
  10.        
  11.         printf("inserisci il secondo numero intero\n"); /* prompt */
  12.         scanf("%d", &num2); /* legge il secondo intero */
  13.        
  14.         somma = num1 + num2; /* assega il valore all avariabile  somma */
  15.        
  16.         printf("la somma dei due numeri inseriti e %d\n", somma); /* visualizza la somma */
  17.        
  18.         return 0; /* indica che il programma è terminato con successo */
  19. }



You'll never censor me!
You'd better cherish me!
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 16:11
Venerdì, 15/05/2009
getchar();

prima del return finale


- Se le mie risposte non vi soddisfano, ignoratele, altrimenti un "grazie" e' molto gradito ...

"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
PM Quote
Avatar
arazz (Normal User)
Pro


Messaggi: 65
Iscritto: 15/05/2009

Segnala al moderatore
Postato alle 16:17
Venerdì, 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++

  1. /* ADDIZIONE DI DUE NUMERI INTERI */
  2. #include <stdio.h>
  3.  
  4. int main()
  5. {
  6.         int num1, num2, somma; /* dichiara le variabili*/
  7.        
  8.         printf("inserisci il primo numero intero\n"); /* prompt*/
  9.         scanf("%d", &num1); /* legge il primo intero */
  10.        
  11.         printf("inserisci il secondo numero intero\n"); /* prompt */
  12.         scanf("%d", &num2); /* legge il secondo intero */
  13.        
  14.         somma = num1 + num2; /* assega il valore all avariabile */
  15.        
  16.         printf("la somma dei due numeri inseriti e %d\n", somma); /* visualizza la somma */
  17.        
  18.         getchar();
  19.         return 0; /* indica che il programma è terminato con successo */
  20. }



è giusto?


You'll never censor me!
You'd better cherish me!
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 16:21
Venerdì, 15/05/2009
Per un problema legato all'ultima scanf, ripeti due volte la getchar e vedrai che va ...

    getchar(); getchar();
    return 0;


- Se le mie risposte non vi soddisfano, ignoratele, altrimenti un "grazie" e' molto gradito ...

"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
PM Quote
Avatar
arazz (Normal User)
Pro


Messaggi: 65
Iscritto: 15/05/2009

Segnala al moderatore
Postato alle 16:28
Venerdì, 15/05/2009
provato, mettendo esattamente come hai scritto, ma continua a fare come prima .__.


You'll never censor me!
You'd better cherish me!
PM Quote
Avatar
gio97 (Ex-Member)
Guru


Messaggi: 715
Iscritto: 25/04/2009

Segnala al moderatore
Postato alle 17:42
Venerdì, 15/05/2009
apri la shell e trascina il programma dentro, poi lo fai partire da lì


"Ditemi, sapete chi è... il ciaffo?"
"Questo essere trae origine da un arcaico lamer.
Tanto tempo fa, in una chat oscena oscena, il lamer f1192 si lamentava di non poter inserire le graffe, perché non aveva... IL CIAFFO"(L'uomo che sussurrava ai ciaffi)
PM Quote
Avatar
arazz (Normal User)
Pro


Messaggi: 65
Iscritto: 15/05/2009

Segnala al moderatore
Postato alle 17:51
Venerdì, 15/05/2009
perdona l'ignoranza, ma cos'è la shell? :D


You'll never censor me!
You'd better cherish me!
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 17:52
Venerdì, 15/05/2009
Testo quotato

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 ...


- Se le mie risposte non vi soddisfano, ignoratele, altrimenti un "grazie" e' molto gradito ...

"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
PM Quote
Avatar
gio97 (Ex-Member)
Guru


Messaggi: 715
Iscritto: 25/04/2009

Segnala al moderatore
Postato alle 17:53
Venerdì, 15/05/2009
oh scusa, su linux c'è la shell: su windows è il prompt di comandi


"Ditemi, sapete chi è... il ciaffo?"
"Questo essere trae origine da un arcaico lamer.
Tanto tempo fa, in una chat oscena oscena, il lamer f1192 si lamentava di non poter inserire le graffe, perché non aveva... IL CIAFFO"(L'uomo che sussurrava ai ciaffi)
PM Quote
Pagine: [ 1 2 3 4 5 ] Precedente | Prossimo