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

  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...
    0
    1. 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
      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.
        0
      2. Merci Pacorabanix , j'ai trouver une solution ce d'utiliser template <int Raw, int col>
        pour en peut ecrie case(Raw-1).
        0
    2. 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
      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.
        0
      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.
        0
      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 .
        0