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

    [C]Incremento tipo enumerato

    ciao ragazzi. volevo chiedere se era possibile incrementare in un ciclo for una variabile di tipo enumerato


    :::::::::::
    typedef enum
    {autunno, inverno, primavera, estate}
    stagioni_t;
    ...........codice........
    for(stagioni = autunno; stagioni <= estate; ++stagioni )
    ::::::::::::



    quando vado a fare l'incremento "++stagioni", nn me lo fa fare...come errore mi da:"no match for 'operator++'in '++stagioni' ".
    qualcuno mi sa dare una mano..vi prego aiutatemi..devo dare l'esame di programmazione e se nn lo faccio bene sto programma nn posso dare l'esame!!PLEASE HELP ME
    Ci sono solo 2 giorni a cui non bisogna pensare mai...ieri e....domani!!

    www.kemsite.altervista.org ....C.O.D.2 clan!!

  2. #2
    Utente di HTML.it L'avatar di torejx
    Registrato dal
    May 2005
    Messaggi
    301

    Re: [C]Incremento tipo enumerato

    Originariamente inviato da [ZeUs]'87
    ciao ragazzi. volevo chiedere se era possibile incrementare in un ciclo for una variabile di tipo enumerato


    :::::::::::
    typedef enum
    {autunno, inverno, primavera, estate}
    stagioni_t;
    ...........codice........
    for(stagioni = autunno; stagioni <= estate; ++stagioni )
    ::::::::::::



    quando vado a fare l'incremento "++stagioni", nn me lo fa fare...come errore mi da:"no match for 'operator++'in '++stagioni' ".
    qualcuno mi sa dare una mano..vi prego aiutatemi..devo dare l'esame di programmazione e se nn lo faccio bene sto programma nn posso dare l'esame!!PLEASE HELP ME
    ciao collega ankio dovrò dare l'esame di prog...

    codice:
    typedef enum
            {autunno, inverno, primavera, estate}
    stagioni_t;
    ...........codice........
    for(stagioni_t = autunno; stagioni_t <= estate; ++stagioni_t )
    prova così...
    io: "cosa vorresti fare da grande?"
    bambino di sei anni: "il coglione"
    io: "come mai?"
    bambino di sei anni: "perchè ogni volta che passa uno con una bella auto papà dice <<guarda quel coglione che bella macchina che c'ha>>"

  3. #3
    speriamo bene...ti dirò al più presto se va!
    Ci sono solo 2 giorni a cui non bisogna pensare mai...ieri e....domani!!

    www.kemsite.altervista.org ....C.O.D.2 clan!!

  4. #4

    Re: [C]Incremento tipo enumerato

    Originariamente inviato da [ZeUs]'87
    ciao ragazzi. volevo chiedere se era possibile incrementare in un ciclo for una variabile di tipo enumerato


    :::::::::::
    typedef enum
    {autunno, inverno, primavera, estate}
    stagioni_t;
    // in teoria qui hai definito un nuovo tipo

    //quindi dovresti ora dichiarare una variabile di tipo stagioni_t
    stagioni_t stagioni;

    ...........codice........
    for(stagioni = autunno; stagioni <= estate; ++stagioni )
    ::::::::::::



    quando vado a fare l'incremento "++stagioni", nn me lo fa fare...come errore mi da:"no match for 'operator++'in '++stagioni' ".
    qualcuno mi sa dare una mano..vi prego aiutatemi..devo dare l'esame di programmazione e se nn lo faccio bene sto programma nn posso dare l'esame!!PLEASE HELP ME
    Spero di non aver scritto cavolate

    Death in t
    he dream world
    will set your soul
    wa
    ndering for eternity, Demon

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Non vedo quale sia il problema:
    codice:
    #include <stdio.h>
    
    typedef enum
    {
        autunno,
        inverno,
        primavera,
        estate
    } stagioni_t;
    
    
    int main (void)
    {
        stagioni_t stag;
    
        for (stag = autunno; stag <= estate; ++stag)
        {
            printf ("%d\n", stag);
        }
    
        return 0;
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  6. #6
    allora io l'avevo fatto come dicevate solo che mi ero scordato di postare
    :::::
    stagioni_t stagioni;
    :::::

    cmq come dite voi dorebbe essere giusto anche perchè sul libro di programmazione sta scritto così.....però..... nnn lo fa....nn capisco ilperchè

    grazie cmq a tutti
    Ci sono solo 2 giorni a cui non bisogna pensare mai...ieri e....domani!!

    www.kemsite.altervista.org ....C.O.D.2 clan!!

  7. #7
    Originariamente inviato da andbin
    Non vedo quale sia il problema:
    codice:
    #include <stdio.h>
    
    typedef enum
    {
        autunno,
        inverno,
        primavera,
        estate
    } stagioni_t;
    
    
    int main (void)
    {
        stagioni_t stag;
    
        for (stag = autunno; stag <= estate; ++stag)
        {
            printf ("%d\n", stag);
        }
    
        return 0;
    }
    se provo ad eseguire il programma mi daà sempre lo stesso errore su '++stag'!!!!!!
    Ci sono solo 2 giorni a cui non bisogna pensare mai...ieri e....domani!!

    www.kemsite.altervista.org ....C.O.D.2 clan!!

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da [ZeUs]'87
    se provo ad eseguire il programma mi daà sempre lo stesso errore su '++stag'!!!!!!
    Compilato come "C" non dà problemi. È compilandolo come "C++" che ottieni l'errore.
    Questo perché dovresti fare l'overload dell'operatore ++ (postfisso e prefisso), per poterlo usare con il tipo stagioni_t.
    Quindi (esempio con operatore prefisso):
    codice:
    #include <stdio.h>
    
    typedef enum
    {
        autunno,
        inverno,
        primavera,
        estate
    } stagioni_t;
    
    inline void operator++ (stagioni_t& val)
    {
        val = stagioni_t(val+1);
    }
    
    int main (void)
    {
        stagioni_t stag;
    
        for (stag = autunno; stag <= estate; ++stag)
        {
            printf ("%d\n", stag);
        }
    
        return 0;
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  9. #9
    Perchè usi l'operatore di preincremento quando puoi semplicemente usare quello di postincremento... cmq devi fare il casting:

    prova così:

    #include <stdio.h>

    typedef enum stagioni_t
    {
    autunno,
    inverno,
    primavera,
    estate
    };

    int main (void)
    {
    stagioni_t stag;

    for (stag = autunno; stag <= estate; ((int)stag)++)
    {
    printf ("%d\n", stag);
    }
    return 0;
    }

    Experience is what you get when you don’t get what you want

  10. #10
    Allora per
    "andbin":
    il compilatore nn mi da errori...però nn mi fa neanche visualizzare niente :master: !!!
    per "Xaratroom"
    il compilatore mi da come errore:
    ISO c++ forbids cast to non-reference type used as lvalue???
    :::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::
    HELP MEEEE PLEASE...che sennò nn posso dare l'esame di programmazione...mannaggia lla pupazza...premetto io ho appena cominciato a programmare in C no in C++...anche se leggendo prima il forum il compilatore e di C++?!?!? UFFAA che casinooo..
    mi sa tanto che contatterò il proff!!
    Grazie ancora ragazzi..siete sempre la mia ancora di salvataggio
    Ci sono solo 2 giorni a cui non bisogna pensare mai...ieri e....domani!!

    www.kemsite.altervista.org ....C.O.D.2 clan!!

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.