Pagina 1 di 4

info linguaggio C

MessaggioInviato: 22 ago 2012, 16:30
da lillo
salve a tutti.
preparando informatica cerco un semplice software per programmare in C.
ricordando che il NetBeans offre questa possibilità, provo a usarlo ma con scarso successo.
scarico allora Dev.C++ , software gratuito che riesco a far funzionare.
per quello che devo fare credo vada più che bene.
per provare quindi comincio con il tutorial che mi propone il solito "Hello World!"
Codice: Seleziona tutto
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  printf("Hello World!\n");
       
  printf("Press ENTER to continue...\n");
  getchar();
  return 0;
}

compilo, eseguo, e mi apre la finestra con la scritta: la finestra si chiude solo se premo invio.
da buon principiante scrivo il primo programma:
Codice: Seleziona tutto
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  int x=0;
  printf("Inserire il numero:\n");
  scanf("%d", &x);
  if(x>=5)
       printf("Il numero è maggiore o uguale a 5");
         
  else
       printf("Il numero è minore di 5");
       
       
  printf("Press ENTER to continue...\n");
  getchar();
  return 0;
}

una robetta che mi avvisa se il numero inserito è maggiore o minore di 5.
all'esecuzione mi esce il messaggio Inserire il numero:, ma se inserisco e premo invio, la finestra si chiude immediatamente.
riesco appena a intravedere il messaggio: Il numero è minore di 5
dove sbaglio?
grazie a tutti :-)

Re: info linguaggio C

MessaggioInviato: 22 ago 2012, 17:05
da teo1998
non sbagli, per il PC il codice finisce li, se includi la libreria "stdlib.h" e scrivi "system ("pause") prima di "getchar();" e hai risolto

Re: info linguaggio C

MessaggioInviato: 22 ago 2012, 17:10
da lillo
grazie mille Foto Utenteteo1998 :ok:
la funzione include anche il messaggio a video: Premere un tasto per continuare...
ora posso allenarmi per bene :ok:

Re: info linguaggio C

MessaggioInviato: 22 ago 2012, 17:12
da teo1998
prego, ti informo che tramite quella libreria basta che scrivi "system ("...");" e al posto dei puntini puoi usare ogni comando del dos

Re: info linguaggio C

MessaggioInviato: 22 ago 2012, 17:18
da lillo
perfetto...
mi resta un dubbio, ma è pura curiosità:
nel primo programmino, l'Hello World!, il programma non mi chiude la finestra, ma attende la pressione del tasto per chiudere.
eppure non ho richiamato la funzione system("pause") :-M

Re: info linguaggio C

MessaggioInviato: 22 ago 2012, 17:19
da xyz
Includi un "windows.h" assolutamente inutile.

L'uso del comando "pause" rende il comando non multi-piattaforma ma eseguibile solo nei sistemi operativi sviluppati presso Redmond.

La chiama "getchar" è più potabile ma non viene di solito messa, i programmi su linea di comando vengono di solito eseguiti su terminale quindi è inutile bloccare l'uscita con un tasto (oltre a rendere nervoso chi lancia il comando).

Re: info linguaggio C

MessaggioInviato: 22 ago 2012, 17:20
da teo1998
togli questa riga e riprova: "printf("Press ENTER to continue...\n");"
e anche il getchar

Re: info linguaggio C

MessaggioInviato: 22 ago 2012, 17:26
da RenzoDF
Come ha già suggerito Foto Utentexyz, da windows un bel run cmd e "atterrerai" sul giusto "pianeta" ( io faccio sempre in quel modo) ... da lì andrai ad eseguire il tuo eseguibile creato dalla compilazione; ovviamente dovrai sapere ando' sta e a questo proposito avrai creato una cartella dal nome più corto possibile dove andare a salvarli. ;-)
NB La finestra del DOS e quella del tuo compilatore preferito potranno tranquillamente coesistere fianco a fianco sullo schermo.

2012-08-22_174046.gif
2012-08-22_174046.gif (45.76 KiB) Osservato 5788 volte

Re: info linguaggio C

MessaggioInviato: 22 ago 2012, 17:36
da lillo
Foto Utentexyz ha scritto:Includi un "windows.h" assolutamente inutile.

lo immaginavo, ma era li dal principio e la mia filosofia è: meno tocchi e meno danni fai :oops:
sapresti dirmi la sua funzione?
Foto Utentexyz ha scritto:L'uso del comando "pause" rende il comando non multi-piattaforma ma eseguibile solo nei sistemi operativi sviluppati presso Redmond.

questo è un problema che non si pone, a me serve un programma per allenarmi in vista dell'esame, esame in modalità carta e penna, dove queste finezze sono altamente omesse.
Foto Utenteteo1998 ha scritto:togli questa riga e riprova: "printf("Press ENTER to continue...\n");"
e anche il getchar

e esce in automatico :(
BTW non importa, l'importante che abbia capito come "fermare" i miei programmi.

@Foto UtenteRenzoDF: perfetto, il tempo di rispolverare un po di comandi DOS e siamo a cavallo

Re: info linguaggio C

MessaggioInviato: 22 ago 2012, 17:44
da lillo
...e come al solito hai ragione :D
il pianeta è proprio quello giusto, senza aggiungere altri comandi i miei output restano li belli visibili :cool:
grazie a tutti, tornerò probabilmente a disturbarvi :mrgreen: