Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [C] problema con le strutture

    ho un problema con le strutture, il compilatore mi da sempre errore quando cerco di compilare i programmi:

    codice:
    #include <stdio.h>
    
    struct libro {
           char autore[25];
           char titolo[25];
           double anno;
           float prezzo;
           };
           
    int main(){
         
         struct libro l1, l2;
         
        l1.autore ='rowling';
        l1.titolo ='harry potter';
        l1.anno = 2005;
        l1.prezzo = 12;
        l2.autore = 'saviano';
        l2.titolo = 'gomorra';
        l2.anno = 2007;
        l2.prezzo = 10;
        printf("il prezzo di %s è %d:", l1.titolo, l1.prezzo);
        printf("il prezzo di %s è %d:", l2.titolo, l2.prezzo);
    }
    e qeust'altro che mi sembrava essere più semplice:

    codice:
    #include <stdio.h>
    
    struct  tempo{
           int sec;
           int min,
           int ore;
           };
           
    int main(){
        
       struct tempo t1;
        
        scanf("%d\n",t1.sec);
        scanf("%d\n",t1.min);
        scanf("%d\n",t1.ore);
        
        printf("Orologio: %d/%d/%d", t1.ore, t1.min, t1.sec);
    }
    Gli errori che mi da sono diversi, nel primo mi dice qualcosa riguarda al char, nel secondo miparla di errore si sintassi

  2. #2
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790
    le stringhe si mettono tra "" e non tra ''(solo i singoli caratteri) e il secondo nella struct ai messo , invece di ;
    conoscenze: C/C++, Java, PHP, Python
    [No PM tecnici o di qualsiasi genere]

  3. #3
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790
    Originariamente inviato da Metflar
    le stringhe si mettono tra "" e non tra ''(solo i singoli caratteri) e il secondo nella struct hai messo , invece di ;
    conoscenze: C/C++, Java, PHP, Python
    [No PM tecnici o di qualsiasi genere]

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    E certo battagliacom... nel primo codice tratti le stringhe come se fossero dati primitivi del C... fai un'assegnazione, tra l'altro usando gli apici singoli invece dei doppi...

    Devi usare la strcpy per copiare le stringhe nello spazio allocato, oppure fare direttamente un'immissione da tastiera con gets() o scanf().

    Nel secondo codice, invece, alla scanf() devi passare l'indirizzo dei campi della struct, non il valore per copia...

    scanf("%d\n", &(t1.sec));
    scanf("%d\n", &(t1.min));
    scanf("%d\n", &(t1.ore));

    EDIT: ah sì poi ha ragione anche metflar, nella struct alla fine della dichiarazione di un campo hai messo , anziché ; ma comunque correggi anche il fatto della scanf()

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,468

    Re: [C] problema con le strutture

    Originariamente inviato da battagliacom
    ho un problema con le strutture
    Probabilmente dovresti rivedere e studiare bene qualche argomento precedente ... come le stringhe ...

    codice:
    #include <stdio.h>
    
    struct libro {
           char autore[25];
           char titolo[25];
           double anno;
           float prezzo;
           };
           
    int main(){
         
         struct libro l1, l2;
         
         strcpy(l1.autore, "rowling");
        strcpy(l1.titolo, "harry potter");[/b][/COLOR] 
        l1.anno = 2005;
        l1.prezzo = 12;
        strcpy(l2.autore, "saviano");
        strcpy(l2.titolo, "gomorra"); 
        l2.anno = 2007;
        l2.prezzo = 10;
        printf("il prezzo di %s è %d:", l1.titolo, l1.prezzo);
        printf("il prezzo di %s è %d:", l2.titolo, l2.prezzo);
    }

    e fare piu' attenzione quando scrivi ...


    codice:
    #include <stdio.h>
    
    struct  tempo{
           int sec;
           int min;
           int ore;
           };
           
    int main(){
        
       struct tempo t1;
        
        scanf("%d\n", &t1.sec);
        scanf("%d\n", &t1.min);
        scanf("%d\n", &t1.ore);
        
        printf("Orologio: %d/%d/%d", t1.ore, t1.min, t1.sec);
    }
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326

    Re: Re: [C] problema con le strutture

    Originariamente inviato da oregon
    Probabilmente dovresti rivedere e studiare bene qualche argomento precedente ... come le stringhe ...

    codice:
        ddstrcpy(l1.autore = "rowling");
        strcpy(l1.titolo = "harry potter"); 
        strcpy(l2.autore = "saviano");
        strcpy(l2.titolo = "gomorra");
    Scusa oregon ma che è ddstrcpy? E poi hai lasciato l'operatore di assegnamento nelle strcpy, ci va la virgola lì...

    Comunque ripeto a battagliacom di rivedere le scanf() nel secondo codice e di metterci l'indirizzo all'argomento, oltre che il fatto della virgola

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,468
    Errore di copia-incolla e di fretta ... era una strcpy ...

    Ho corretto ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8

    Re: [C] problema con le strutture

    Originariamente inviato da battagliacom
    ho un problema con le strutture, il compilatore mi da sempre errore quando cerco di compilare i programmi:

    codice:
    ...     
         struct libro l1, l2;
    ...
    Usando quelle etichette (l1 e l2) per la tua struttura, i problemi te li vai un pò a cercare
    è fin troppo facile nel codice non accorgersi se si tratta di 1 (numero uno) con l (lettera L minuscola)...
    E' buona abitudine quella di semplificarsi la vita.
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  9. #9
    ho ascoltato i vostri consigli ma mi succede una cosa strana con il programma orologio, quando lo eseguo,inserisco i 3 numeri, ma per far apparire il printf() devo inserirne un quarto, che poi non viene visualizzato. Quello che vedo è:
    C:\Document and setting\nomeutente>desktop\ora.exe
    1
    2
    3
    4
    Orologio: 3/2/1
    C:\Document and setting\nomeutente>
    il codice dovrebbe essere quello giusto e gli:
    codice:
    #include <stdio.h>
    
    struct tempo {
           int sec;
           int min;
           int ore;
           };
           
    int main(){
        
       struct tempo t1;
        
        scanf("%d\n", &(t1.sec));
        scanf("%d\n", &(t1.min));
        scanf("%d\n", &(t1.ore));
        
        printf("Orologio: %d/%d/%d", t1.ore, t1.min, t1.sec);
    }
    Se dopo il 3 numero immesso, premo invio mi fa daccapo finche non scrivo un numero.

  10. #10
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790
    levi gli \n non ti servono
    conoscenze: C/C++, Java, PHP, Python
    [No PM tecnici o di qualsiasi genere]

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.