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

    [c] syntax error & implicit declaration of function

    Salve a tutti ho un problema a compilare il seguente codice (file date.c) in gcc.
    Allego anche l'errore che ho ottenuto.

    codice:
    date.c: In function 'main':
    date.c:7: warning: implicit declaration of function 'printf'
    date.c:8: warning: implicit declaration of function 'scanf'
    date.c:12: error: syntax error before "case"
    codice:
    /* Stampa la data nel formato legale */
    
    int main(void)
    {
         int month, day, year;
    
         printf("Enter date (mm/dd/yy): ");
         scanf("%d /%d /%d", &month, &day, &year);
    
         printf("Dated this %d", day);
         switch (day) {
                case 1: case 21 case 31:
                     printf("st"); break;
                case 2: case 22:
                     printf("nd"); break;
                case 3: case 23:
                     printf("rd"); break;
                default: printf("th"); break;
         }
         printf(" day of ");
              switch (month) {
                case 1: printf("January"); break;
                case 2: printf("February"); break;
                case 3: printf("March"); break;
                case 4: printf("April"); break;
                case 5: printf("May"); break;
                case 6: printf("June"); break;
                case 7: printf("July"); break;
                case 8: printf("August"); break;
                case 9: printf("September"); break;
                case 10: printf("October"); break;
                case 11: printf("November"); break;
                case 12: printf("December"); break;
         }     printf(", 20%.2d.\n", year);
         return 0;
    }
    Mi potreste aiutare a risolverlo? Grazie

  2. #2
    1. Per usare printf e scanf devi includere <stdio.h>.
    2. Dopo case 21 mancano i due punti.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    prova ad includere stdio.h e poi il main deve avere int argc,char **argv)
    Per gli Spartani e Sparta usa spartan Il mio github

  4. #4
    Aaaaaah che sbadatooooooo
    Non ci credo eheheh che errore stupido.. Non capivo cosa nn adasse eheheh


    EDIT!!!: Rimane l'errore nella riga syntax error before "case"

  5. #5
    Originariamente inviato da linoma
    e poi il main deve avere int argc,char **argv)
    Lo standard ammette anche la versione senza parametri (ma non quella con void come tipo restituito, che deve essere sempre int).
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Originariamente inviato da MItaly
    Lo standard ammette anche la versione senza parametri (ma non quella con void come tipo restituito, che deve essere sempre int).
    No l'errore non è nell'uso di (void) nella funzione main ha sempre funzionato come deve...

  7. #7
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    ho scritto deve per intendere è buona abitudine scriverlo cosi.
    Per gli Spartani e Sparta usa spartan Il mio github

  8. #8
    Originariamente inviato da Zorgatone
    No l'errore non è nell'uso di (void) nella funzione main ha sempre funzionato come deve...
    Ma infatti è corretto. Quello che è sbagliato è
    codice:
    void main(void)
    Originariamente inviato da linoma
    ho scritto deve per intendere è buona abitudine scriverlo cosi.
    Ribadisco, non è necessario. Se non si usano i parametri a linea di comando non vedo perché non usare la variante senza parametri (visto che è accettata dallo standard).
    In ogni caso, è una questione puramente stilistica.
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9

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 © 2024 vBulletin Solutions, Inc. All rights reserved.