Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [C] Hello World non funziona

    Ho iniziato ora a fare il corso di html.it per la programmazione in C.
    Ho scritto questo codice nel file "hello.c":
    codice:
    #include <stdio.h>
    
    main ()
    {
      printf("Hello World");
    }
    Con Dev-C++ faccio compila ed esegui, ma si apre una finestra di dos per un millisecondo, e poi si chiude, tutto qui...
    Main: Asus P5KR | Intel Q6600 G0 @ 3.6GHz | Kingston 2x1GB DDR-II @ 800MHz | POV GeForce 8800GT 512MB | Seagate Barracuda 7200.11 32MB 2x500GB RAID0 | Enermax Chakra 3052BS | Enermax Liberty 500W | Zerotherm Nirvana NV120 Premium || eee PC || Net: Atlantis Land WebShare 340 | Alice 19M/1M || Gentoo Linux | gtk-gnutella rulezz.

  2. #2

    Re: [C] Hello World non funziona

    Originariamente inviato da Gionnico
    Ho iniziato ora a fare il corso di html.it per la programmazione in C.
    Ho scritto questo codice nel file "hello.c":
    codice:
    #include <stdio.h>
    
    main ()
    {
      printf("Hello World");
    }
    Con Dev-C++ faccio compila ed esegui, ma si apre una finestra di dos per un millisecondo, e poi si chiude, tutto qui...
    Prima della parentesi graffa che chiude la main metti system("PAUSE"); oppure getchar();
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  3. #3
    Con questo
    codice:
    #include <stdio.h>
    
    main ()
    {
         getchar();
    
      printf("Hello World");
    }
    Mi si apre la finestra di DOS, ma non appare nessuna scritta!

    Mentre con questo
    codice:
    #include <stdio.h>
    
    main ()
    {
    system("PAUSE");
    
      printf("Hello World");
    }
    Si apre la finestra di DOS e dice premere un tasto per continuare... se lo premo si chiude DOS
    Main: Asus P5KR | Intel Q6600 G0 @ 3.6GHz | Kingston 2x1GB DDR-II @ 800MHz | POV GeForce 8800GT 512MB | Seagate Barracuda 7200.11 32MB 2x500GB RAID0 | Enermax Chakra 3052BS | Enermax Liberty 500W | Zerotherm Nirvana NV120 Premium || eee PC || Net: Atlantis Land WebShare 340 | Alice 19M/1M || Gentoo Linux | gtk-gnutella rulezz.

  4. #4
    mettilo come ultima istruzione, non come prima.

    cosi :
    codice:
    #include <stdio.h>
    
    main ()
    {
    printf("Hello World");
    
    system("PAUSE");
    }

  5. #5

    Siiiiiiiiiiiii!!!!!!!
    Però al posto di "system("PAUSE");" ho usato "getchar();" per non fare venire la scritta "Hello WorldPremere un tasto per continuare..." Chissà perché nella guida non è scritto Grazie!
    Main: Asus P5KR | Intel Q6600 G0 @ 3.6GHz | Kingston 2x1GB DDR-II @ 800MHz | POV GeForce 8800GT 512MB | Seagate Barracuda 7200.11 32MB 2x500GB RAID0 | Enermax Chakra 3052BS | Enermax Liberty 500W | Zerotherm Nirvana NV120 Premium || eee PC || Net: Atlantis Land WebShare 340 | Alice 19M/1M || Gentoo Linux | gtk-gnutella rulezz.

  6. #6
    Per andare a capo usa il carattere escape \n. Quindi per esempio scrivendo "Testo\nAltro testo" uscirà:

    Testo
    Altro testo

    Comunque ti consiglio di usare il comando cout anzicheè printf().

    Per usarlo devi includere la libreria <iostream.h>.

    Ad esempio, il tuo programma usando cout diventerebbe:

    codice:
    #include <iostream.h>
    
    int main ()
    {
      cout << "Hello world!" << endl;
      system("pause");
      return 0;
    }
    Come vedi è molto più facile usare cout, soprattutto se hai diverse variabili che vuoi scrivere. endl indica al programma di scrivere ciò che c'è nel buffer (infatti i dati prima di essere scritti sulla console vengono messi un una memoria temporanea) e va a capo.

    Graecia GdR Online -> http://graeciagdr.altervista.org/

  7. #7
    Comunque ti consiglio di usare il comando cout anzicheè printf().
    cout fa parte della libreria del c++ non del c che io sappia....
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  8. #8
    cmq certe cose vanno spiegate!

    non potete dirgli di usare getchar() cosi a caso!

    getchar() è una funzione che resta in attesa di un input da tastiera, e ritorna un char (il tasto che pigi)

    nel tuo caso può funzionare comunque, ma non è un utilizzo corretto della funzione, è molto meglio pause, che è fatta apposta!

    inoltre se vuoi puoi eseguire il tuo programma dal prompt dei comandi (start->esegui->cmd) li vedrai sempre tutti gli output del programma, senza la necessità di ricorrere a sistemi di questo tipo

    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  9. #9
    Originariamente inviato da nik600
    cmq certe cose vanno spiegate!

    non potete dirgli di usare getchar() cosi a caso!

    getchar() è una funzione che resta in attesa di un input da tastiera, e ritorna un char (il tasto che pigi)

    nel tuo caso può funzionare comunque, ma non è un utilizzo corretto della funzione, è molto meglio pause, che è fatta apposta!

    inoltre se vuoi puoi eseguire il tuo programma dal prompt dei comandi (start->esegui->cmd) li vedrai sempre tutti gli output del programma, senza la necessità di ricorrere a sistemi di questo tipo

    La mia risposta era un po frettolosa e la tua critica è più che giusta ,mea culpa.Per il fatto che sytem("PAUSE"); sia meglio di gethar(); non sono tanto d'accordo, la prima opzione non fa altro che lanciare un comando di sistema e pertanto rende il prog dipendente dallo stesso,quel codice non compilerebbe nemmeno sotto linux.Se invece usi getchar,il programma è pienamente portabile...
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  10. #10
    su questo hai ragione te!

    solo che dato che era all'inizio non credo che il suo problema sia quello di creare del codice portabile

    in definitiva credo che l'esecuzione da shell/prompt dei comandi sia la migliore!

    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.