Programmation de base en C++ ...

Bonjour,

Voilà le topo, je débute en programmation ( IUT), et le prof nous a donné à faire un compteur de plateau en C++ :

eeuuujshalfdlll.

Cette "phrase" contient 3 plateaux, par exemple.

Voilà mon code :

#include <iostream>
using namespace std;
int main ()
{
char let1='1',let2='0';
int nbrpla=0;
bool danplat=false;
while(let1!='.')
{
cin>>let1;
if ((let1==let2)&(danplat=false))
{
nbrpla=nbrpla+1;
}
else if (let1==let2)h
{
danplat=true;
}
else if (let1!=let2)
{
danplat=false;
}
let2=let1;
}
cout<<nbrpla;
return 0;
}

seulement, le cout m'affiche toujours 0, je n'arrive pas à comprendre pourquoi ...

3 réponses

  1. Bon, une ou deux recherches m'ont fait comprendre que l'on ne pouvait utiliser les opérateurs == ou = sur les chars ...

    Quelqu'un pourrait m'expliquer comment effectuer des tests de comparaison sur des chars, et comment définir à un char la valeur d'un autre char ?
    0
    1. Bonjour

      Je ne sais pas où tu as pêché tes infos, mais on a parfaitement le droit d'utiliser = et == en C++. D'ailleurs, si ça n'avais pas été possible, le compilateur te l'aurait dit.
      if ((let1==let2)&(danplat=false)) : je te rappelle que la comparaison c'est == et que le et logique c'est &&
      0
      1. Je.
        Suis.
        Un.
        Idiot.

        Merci de ton aide, j'ai refait tout ça sur papier, et j'ai pu trouver.

        #include <iostream>
        using namespace std;
        int main ()
        {
        char let1='1',let2='0';
        int nbrpla=0;
        bool danpla=false;
        while(let1!='.')
        {
        cin>>let1;
        if (let1==let2&&danpla==false)
        {
        nbrpla=nbrpla+1;
        danpla=true;
        }
        else if (let1!=let2)
        {
        danpla=false;
        }
        let2=let1;
        }
        cout<<nbrpla;
        return 0;
        }
        0