• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Problema risolto [ C ]Problema (banale): il programma si chiude immediatamente.

Bitc0n

Nuovo utente
Autore del topic
25 Marzo 2016
22
0
Miglior risposta
0
Ragazzi, per quanto sia banale il problema, non riesco a risolverlo :emoji_slight_frown:. In pratica ogni programma che faccio (anche un banale Hello World) il programma si chiude istantaneamente dopo l'esecuzione. Ho gia provato con getchar() e altri metodi, ma non ho risolto nulla... Come compilatore uso gcc alla versione 4.9.2 su Debian. Grazie in anticipo^^
 
Niente, esce lo stesso. Ho provato anche a mettere fflush(stdin) ma niente.
 
Allora: per l'header conio il compilatore da un fatal error (file o directory non trovata). Se faccio un "hello world" e scrivo quello che ha detto federico, non si chiude. Ma appena il programma è un po più complesso (come ad esempio, mettere una lettera in input) si chiude subito.
 
Allora: per l'header conio il compilatore da un fatal error (file o directory non trovata). Se faccio un "hello world" e scrivo quello che ha detto federico, non si chiude. Ma appena il programma è un po più complesso (come ad esempio, mettere una lettera in input) si chiude subito.

Forse non inventeranno mai la palla magica, quindi ti consiglio di postare il codice, così possiamo vederlo.
 
Si scusa xD

#include <stdio.h>
#include <stdlib.h>

int main()
{
int a;
printf("Scrivi un numero:");
scanf("%d", &a);

printf("%d\n", a);

printf("Premi un tasto qualsiasi per uscire \n");
//ho aggiunto sia stdin che stdout per "sicurezza"
fflush(stdin);
fflush(stdout);
(void)getchar();
return 0;
}
 
Come mi aspettavo...
"fatal error: stdafx.h: File o directory non esistente"
Che compilatore hai usato?
 
Ragazzi, per quanto sia banale il problema, non riesco a risolverlo :emoji_slight_frown:. In pratica ogni programma che faccio (anche un banale Hello World) il programma si chiude istantaneamente dopo l'esecuzione. Ho gia provato con getchar() e altri metodi, ma non ho risolto nulla... Come compilatore uso gcc alla versione 4.9.2 su Debian. Grazie in anticipo^^

il problema si presenta esclusivamente quando leggi qualcosa dal terminale , dato che rimane nel buffer il carattere d'invio , quindi quando chiami getchar trova \n e termina l'esecuzione.
Le soluzioni possono essere due :
- scrivi due volte getchar()
- controlli con un ciclo che sia diverso da '\n' e EOF.

n.b @#Federico100 conio.h è un header file di ms-dos e non appartiene allo standard POSIX - @bombaatomica dev c++ è uno tra gli ide più penosi per sviluppare.
 
Ultima modifica:
il problema si presenta esclusivamente quando leggi qualcosa dal terminale , dato che rimane nel buffer il carattere d'invio , quindi quando chiami getchar trova \n e termina l'esecuzione.
Le soluzioni possono essere due :
- scrivi due volte getchar()
- controlli con un ciclo che sia diverso da '\n' e EOF.

n.b @#Federico100 conio.h è un header file di ms-dos e non appartiene allo standard POSIX - @bombaatomica dev c++ è uno tra gli ide più penosi per sviluppare.
Grazie mille! Ho risolto ;-)
 
System() comunque rende il programma non portabile in quanto funziona solo su Windows, tra le altre cose. La soluzione migliore è quella scritta sopra da TBH. Detto questo sposto nei problemi risolti. :emoji_slight_smile: