C++

Résolu
Bonjour,
void remplissage(int Raw,int col)
{
switch(tab[i][j].x)
{
case 0:
{//processus}
case (Raw-1):
{//processus}
}
}
mon faute est dans case(Raw-1) le compilateur donne que Raw cannot appeare in constant expersssion.

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. il faut utiliser un if, dans les "case" des switch on ne peut pas mettre de variables.

    C'est d'ailleurs ce que dit l'erreur...
    1. Il te dit quoi comme erreur ?

      Que tu mettes :

           case (Raw-1) 


      ou :

           int l_raw;  
           l_raw = Raw-1;  
           case (l_raw):


      au niveau logique c'est exactement la même chose.

      Sauf que dans le case(), je crois qu'il n'est pas possible de mettre des expressions logiques ou "mathématiques".
      1. Merci ,
        Erreur: 'raw' cannot appear in constant-expression
        bon d'apres vous à l'aide de switch case comment je peut identifier la dernier ligne avec le nombre des lignes est génerique?
        merci beaucoup de m'aider.
      2. "Erreur: 'raw' cannot appear in constant-expression "

        Ce message correspond à cette modif ?

             int l_raw;    
             l_raw = Raw-1;    
             case (l_raw): 


        Merci

        Ps: colle tout ton code stp.
      3. bon j'ai trouver une solution on utiliser template <int Raw,int col>
        void remplissage()
        switch()
        {
        case(Raw-1):
        {
        }
        }
        ça marche bien j'espère .
    2. B-M-R, c'est quoi ?

      Bonjour,      
      
      mon sujet est ....      
      ...      
      Je vous reMercie ...      
      ...       
      Au Revoir.


      Ensuite,
      essaie un truc comme ca:

      void remplissage(int Raw,int col){       
         Int l_raw;
         l_raw = raw-1;       
         switch(tab[i][j].x)       
         {       
          case 0:       
             {//processus}       
          case (l_raw):       
             {//processus}       
         }       
      }        
      


      N'oublie pas d'indenter ton code et d'utiliser les balises < code> < / code>.

      A+
      1. Merci, mais ca marche pas je doit utilisé le même paramètre Raw dans case.
        c'est un matrice le ligne 1 et ligne (Raw-1) sont différents des autres lignes
        avec Raw nombre de ligne.
      2. Merci Pacorabanix , j'ai trouver une solution ce d'utiliser template <int Raw, int col>
        pour en peut ecrie case(Raw-1).