Prog C++

Fermé
tafiscobar Messages postés 1277 Date d'inscription jeudi 7 décembre 2000 Statut Contributeur Dernière intervention 26 février 2009 - 30 déc. 2001 à 22:21
 Ghost - 31 déc. 2001 à 10:10
salut, je veux chercher ds une chaine de caracteres les operateurs et a chaque fois que ce n'est pas un operateur(ie ni +,ni-,ni*,ni/), je concatene la valeur de ch[i] a la varaible tmp, et j'uitilise pour cela une macro: L'erreur de VC++ est la suivante: tmptemp1 undeclared identifier , et pourtant je pense il devrait tenir compte que ce st des varaibles. Voici le code :

#include<iostream.h>

/*la macro qui suit concatene 2chiffres sans les transformes en chaine de caracteres*/
#define concat(chiffre1,chiffre2) chiffre1##chiffre2

const int max=100;
typedef char chaine[max];

/*cette procedure met tous les nombres ds 1 tableau avant de les afficher
elle parcourt pour cela la chaine de caracteres ch et compare ch[i] aux differents
operateurs pour savoir s'il est arrive a la fin d'1 nombre ou nom
ceci n'est que l'essai d'1 prog qui devrait faire plus que ça,
mais le plus dur est d'arriver a separer les nombres aux operateurs, ce que j'essaie*/

void chercher(chaine ch)
{
int i,j;
i=0;
j=0;
double tmp,temp1;
tmp=0;
double tab[max];
while(ch[i]!='\0')
{
if(ch[i]!='+' && ch[i]!='-' && ch[i]!='/' && ch[i]!='*')
{
temp1=(double) ch[i];
tmp=concat(tmp,temp1);
}
else
{
tab[j]=tmp;
tmp=0;
j++;
}
i++;
}
for(i=0;i<j;i++)
cout<<tab[i]<<"\t";
cout<<"\nReussis ton prog mais trop petit\n\n";

}

void main() //programme d'essai
{
chaine str;
cout<<"entrez votre expression ";
cin>>str;
chercher(str);

cout<<"Programme reussi ou non, hahaha\n\n";
}
merci de m'aider si vous le pouvez, merci d'avance
tafiscobar
A voir également:

1 réponse

Remplace
if(ch[i]!='+' && ch[i]!='-' && ch[i]!='/' && ch[i]!='*')
{
temp1=(double) ch[i];
tmp=concat(tmp,temp1);
}

par
if(ch[i]!='+' && ch[i]!='-' && ch[i]!='/' && ch[i]!='*')
{
temp1=(double)ch[i];
temp1-=48; // Pour conversion en numérique
tmp=tmp*10+temp1; // Pour la concaténation
}
0