Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. 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. }


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

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?

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;

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

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ì

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

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

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

PM Quote
Pagine: [ 1 2 3 4 5 ] Precedente | Prossimo