Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente bannato
    Registrato dal
    Feb 2004
    Messaggi
    31

    problema con devc++

    Ho un problema con devc++(uso windowsxp):
    anche per scrivere un semplice programma in C, tipo questo,
    #include<stdio.h>
    main()
    {
    printf("Hello world!");
    return(0);
    }

    , non mi parte il programma!Mi spiego meglio:compare per un attimo la finestra nera, ma scompare subito...
    COSA DEVO FARE??

  2. #2
    #include <stdlib.h>
    .......
    .......
    .......
    system("pause");
    return 0;
    }

    oppure... lanci il programma (console) da console (prompt dos)
    ...Terrible warlords, good warlords, and an english song

  3. #3
    Utente bannato
    Registrato dal
    Feb 2004
    Messaggi
    31
    lanci il programma (console) da console (prompt dos)
    sono uno alle prime armi, potresti spiegarmelo dettagliatamente?

  4. #4
    devi semplicemente aggiungere al tuo progetto il codice che ti ho scritto.

    #include <stdio.h> /* standard input/output C */
    #include <stdlib.h> /* altre librerie standard C */

    int main()
    {
    printf("Hello World, it is new!\n");
    system("pause"); /* chiamo il comando ms-dos PAUSE */
    return 0;
    }

    Se lanci il programma da GUI (interfaccia grafica windows)
    ...cosa che fai visto che utilizzi DEV C++, la finestra del prompt
    ms-dos di Xp, si chiude non appena terminato il codice... quindi non hai il tempo per visualizzare a video il programma.

    Se invece lanci (esegui) l'eseguibile C (.exe) da prompt
    ovviamente la finestra del prompt (essendo già aperta) non scompare
    quindi hai il tempo di visualizzare l'output del programma.

    Per ovviare a tutto ciò (lanciare/visualizzare l'eseguibile direttamente da ambiente grafico Windows... == Dev C++) basta
    aggiungere il comando MS-DOS "PAUSE" (come da esempio)
    ...Terrible warlords, good warlords, and an english song

  5. #5
    Utente bannato
    Registrato dal
    Feb 2004
    Messaggi
    31
    mi dispiace disturbarti, ma ho ancora un problema....
    cliccando su "compila e esegui", la finestra di compilazione scompare subito, e l'esecuzione non si fa nemmeno vedere, inoltre se,successivamente, provo ad eseguirlo mi viene una finestra di errore contenente"Il progetto non è compilato"

  6. #6
    Utente bannato
    Registrato dal
    Nov 2003
    Messaggi
    558
    Allora...vediamo un po'

    Dev C++ 8perlomeno nella versione 4) da molti problemi in questo senso...

    Infatti se crei un progetto prima di compilarlo devi salvare il sorgente uscire e rientrare nel programma e solo dopo compila

    Io x evitre questo semplicemente nn creo mai un progetto se devo compilare un singolo sorgente. Semplicemente creo un file di testo e lo rinomino in .c o .cpp. Poi lo apro scrivo il codice e compilo senza problemi.

    Ovviamente può darsi che nn compili perchè c'è semplicemente un errore sintattico nel sorgente...

    Per quanto riguarda nn fare chiudere la finestrella ci sono un infinità di modi. Oltre al system ("pause") (che ha l'inconveniente di visualizzare un messaggio spesso indesiderato) ci sono le funzioni getchar () e getch () entrambe contenute in stdio.h
    Oppure se programmi in c++ puoi usare il metodo cin.get () che però stranamente nn funziona sempre.


  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    910
    fai cosi...

    codice:
    #include<stdio.h> 
    main() 
    { 
    printf("Hello world!"); 
    scanf("%d"&a);
    return(0); 
    }
    dichiara a....

  8. #8
    Utente bannato
    Registrato dal
    Nov 2003
    Messaggi
    558
    Originariamente inviato da edark
    fai cosi...

    codice:
    #include<stdio.h> 
    main() 
    { 
    printf("Hello world!"); 
    scanf("%d"&a);
    return(0); 
    }
    dichiara a....
    E' ,meglio usare una delle funzioni apposite altrimenti il programma è vulnerabile nel senso che una persona inserendo particolari stringhe potrebbe visualizzarne i sorgenti...

    Nn so bene in cosa consista tecnicamente questa vulnerabilità solo che consigliano tutti di nn usare scanf

  9. #9
    Se ti riferisci al buffer overrun, non serve per vedere i sorgenti, perchè comunque una volta compilato un sorgente non è possibile, automaticamente o comunque con facilità, decompilare il codice oggetto.

    Il problema delle sicurezza sta nel fatto che la funzione scanf non potrebbe effettuare controlli su input mal formati.

    Questo è un esempio di funzione vulnerabile agli overrun, infatti non verifica se <nome>, supera i confini della variabile <tmp> allocata sullo stack e quindi sforando questi confini è possibile sovrascrivere l'indirizzo di ritorno della funzione sullo stack, in modo da fare eseguire del codice alla tua applicazione.
    codice:
    void get_input(char* name)
    {
      char tmp[16];
    
      strcpy(tmp, name);
    
      ...
      /* processa tmp */
      ...
    }
    tra l'altro, ecco perchè anche strcpy è sconsigliata, di solito gcc da dei warning proprio in questo senso

  10. #10
    Ciao a tutti.

    Ecco il mio problema:

    Creo il file progetto, compilo e quando eseguo mi apre la finestra e non mi esegue il printf...

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    main()
    {  
       printf("Ciao\n");  
       system("pause");
       return(EXIT_SUCCESS);      
    }
    Se invece lo eseguo da solo (non incluso nel progetto) funziona tutto.

    Perchè?

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.