Pagina 1 di 1

far terminare un programma in c!

Inviato: venerdì 11 aprile 2014, 13:29
da MicheleMic
ciao a tutti,
sto imparanto le basi del linguaggio c x cercare di riuscire a progettare piccoli e sempli programmi.
Al momento utilizzo dev-c++ come compilatore ed esecutore.
una volta terminato il programma e facendo patire l'applicazione che ho creato (.exe) , una volta terminato si chiude improvvisamente la finestra di svilutto( x intendersi, quella con sfondo nero deove gira il programma).
Mi chiedevo se esiste la possibilità che il programma attenda il premere di un tasto , come ad esempio quello del tasto ''invio'' , da parte dell'operatore fisico, per far terminare il programma , senza che sparisca all'improvviso.
il codice è di una banalità assurda, sono sicuro, solo che per me è già molto esser riuscito a compilare roba del genere, non avendo basi informatiche decenti!
lo posto qui sotto:

#include <stdio.h>
int main(){
int a;
char esci[20];
printf("dimmi quanti anni hai: ");
scanf("%d",&a);
if(a<18){
printf("sei molto giovane");
}
else{
printf("sei una persona matura"); / qui vorrei che il programma attenda il premere di un tasto ( tipo tasto invio) da parte dell'operatore fisico, per far terminare il tutto/
}
fatemi saperre.
grazie in anticipo!
michele.

Re: far terminare un programma in c!

Inviato: venerdì 11 aprile 2014, 16:04
da lucalaugh
beh, visto che stai utilizzando Windows e DevC++ ( :( ) basta includere

Codice: Seleziona tutto

#include <stdlib.h>
e poco prima di chiudere la parentesi graffa } metti

Codice: Seleziona tutto

system("PAUSE")
, la funzione system come puoi intuire esegue comandi da shell, in questo caso il comando "PAUSE" che su windows ti chiede di premere un tasto per continuare.

Re: far terminare un programma in c!

Inviato: venerdì 11 aprile 2014, 16:17
da MicheleMic
Grazie Luca . Tranquillo :) sto scaricando ubuntu 13.10 32 bit. proprio perché vorrei scaricare geany come compilatore e perché penso sia molto meglio Linux che Windows. Me lo confermi ? :D tramite virtualbox x il momento! Con geany posso utilizzare cmq la libreria e la funzione sustem che mi hai detto o cambia qualcosa?
Grazie ciao!

Re: far terminare un programma in c!

Inviato: venerdì 11 aprile 2014, 19:37
da 1001001
Ciao!
Un paio di osservazioni (in ordine sparso di importanza) :
1) DEV-C++ e Geany sono IDE, non compilatori. Su windows probabilmente usi MinGW, su Ubuntu probabilmente userai gcc. Attento a non fare confusione :)
2) usare la funzione system è fortemente sconsigliato, prima di tutto per motivi di sicurezza..senza contare che è os-dependent. Il modo più pulito di procedere secondo me è usare la funzione getc:

Codice: Seleziona tutto

getc (stdin);
In ambiente linux comunque questo bisogno è ridotto dal fatto che i programmi compilati vengono generalmente lanciati da console, quindi la terminazione del processo non fa "chiudere la finestra" come su windows (dove il problema è dovuto al fatto che lanci il programma attraverso l'IDE, se usassi la console anche lì la situazione sarebbe la stessa)
3) ricordati di usare il tag code quando posti i tuoi codici, per facilitare la leggibilità..potresti per favore modificare anche il post sopra? :) e già che siamo in tema, ricordati anche di indentare per bene i codici che scrivi :)
4)
MicheleMic ha scritto: penso sia molto meglio Linux che Windows. Me lo confermi ?
la domanda l'hai posta a un pubblico tendenzialmente di parte : ) io però cercherò di essere obiettivo, e dirò: "dipende". Dipende da quello che vuoi farci e da quanta voglia hai di sbatterti a imparare un nuovo sistema operativo. Ma se vuoi approfondire la questione ti consiglio di aprire una nuova discussione, qui rischiamo di andare off-topic :)
5)
MicheleMic ha scritto:Con geany posso utilizzare cmq la libreria e la funzione sustem che mi hai detto o cambia qualcosa?
premesso quanto detto al punto 2, la funzione system, in quanto funzione del C, può essere usata anche su ubuntu..il problema è che "pause" non è un comando della shell di ubuntu, quindi se proprio vuoi usare system dovrai adattare la chiamata (vedi ancora punto 2, alla voce: os-dependent :) )

Re: far terminare un programma in c!

Inviato: sabato 12 aprile 2014, 0:25
da MicheleMic
ebbene si, nn so come usare il tag! quqlkuno me lo può spiegare? grazie!

Re: far terminare un programma in c!

Inviato: sabato 12 aprile 2014, 12:43
da 1001001
Nella finestra di composizione del messaggio che apri cliccando su "Rispondi" (o su "Editor completo" se hai cliccato su "Risposta rapida") c'è un tasto in alto a sinistra con scritto "Codice". Seleziona il testo che vuoi racchiudere fra tag e clicca sul tasto