C++

Résolu/Fermé
narsise - 5 mai 2011 à 11:22
 narsise - 5 mai 2011 à 15:40
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

Pacorabanix Messages postés 3245 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 658
Modifié par Pacorabanix le 5/05/2011 à 12:39
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
informaticienSAP Messages postés 119 Date d'inscription jeudi 21 avril 2011 Statut Membre Dernière intervention 17 décembre 2011 20
Modifié par informaticienSAP le 5/05/2011 à 11:51
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.
0
Pacorabanix Messages postés 3245 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 658
5 mai 2011 à 15:28
0
Merci Pacorabanix , j'ai trouver une solution ce d'utiliser template <int Raw, int col>
pour en peut ecrie case(Raw-1).
0
informaticienSAP Messages postés 119 Date d'inscription jeudi 21 avril 2011 Statut Membre Dernière intervention 17 décembre 2011 20
Modifié par informaticienSAP le 5/05/2011 à 12:11
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.
0
informaticienSAP Messages postés 119 Date d'inscription jeudi 21 avril 2011 Statut Membre Dernière intervention 17 décembre 2011 20
Modifié par informaticienSAP le 5/05/2011 à 12:26
"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
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