Tom's Guide > Forum > Programmation > Probleme pour programme c++ simple
Mot :    Pseudo :           
 

Bonjour, lorsque je lance ce programme, il me demande d'écrire une phrase pour ensuite verifier si la grammaire est bonne. Mais lorceque j'écrit un point virgule ou , etc... le programme se ferme tout seul sans donner une reponse.
PS: la librairie baba.h donne une signification a premier(s) et reste(s)

Voici le programme :

Citation :

#include <cstdlib>
#include <iostream>
#include "baba.h"

int main()
{
chaine s;
int cptParenthese = 0;
int cptCrochet = 0;
bool ok = true;
char c;
bool termine = false;
int trouve;
cout << "Ecrire une phrase : ";
cin >> s;
cout << endl;

while (!vide(s), !termine){
c = premier(s);
s = reste (s);
switch(c){
case '(': ok = true; termine = false; cptParenthese++; break;
case ')': ok = true; termine = false; cptParenthese--; break;
case '[': ok = true; termine = false; cptCrochet++; break;
case ']': ok = true; termine = false; cptCrochet--; break;
case ';': ok = true; termine = false; break;
case ',': ok = true; termine = false; break;
default: ok = false; termine = true; break;
}
}

if (cptParenthese != 0 || cptCrochet != 0) trouve = false;
else trouve = true;

if (ok && trouve){
cout << "vrai" << endl;
}
else{
cout << "fausse" << endl;
}

system("PAUSE" );
return EXIT_SUCCESS;
}



Merci :)

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Ba ...
je suis po génial en c mais le dernier 'break' je croi po qui soit nessecaire ...
ca ferait :

Code :
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include "baba.h"
  4. int main()
  5. {
  6.     chaine s;
  7.     int cptParenthese = 0;
  8.     int cptCrochet = 0;
  9.     bool ok = true;
  10.     char c;
  11.     bool termine = false;
  12.     int trouve;
  13.     cout << "Ecrire une phrase : ";
  14.     cin >> s;
  15.     cout << endl;
  16.    
  17.     while (!vide(s), !termine){
  18.           c = premier(s);
  19.           s = reste (s);
  20.           switch(c){
  21.           case '(': ok = true; termine = false; cptParenthese++; break;
  22.           case ')': ok = true; termine = false; cptParenthese--; break;
  23.           case '[': ok = true; termine = false;  cptCrochet++; break;
  24.           case ']': ok = true; termine = false;  cptCrochet--; break;
  25.           case ';': ok = true; termine = falsebreak;
  26.           case ',': ok = true; termine = falsebreak;
  27.           default: ok = false; termine = true;          /* ici on enleve le 'break;' */
  28.           }
  29.           }
  30.            
  31.           if (cptParenthese != 0 || cptCrochet != 0) trouve = false;
  32.           else trouve = true;
  33.            
  34.           if (ok && trouve){
  35.                     cout << "vrai" << endl;
  36.                     }
  37.                     else{
  38.                         cout << "fausse" << endl;
  39.                         }
  40.                          
  41.     system("PAUSE" );
  42.     return EXIT_SUCCESS;
  43. }


Puré mais pourquoi il colore le code dans les commentaires ..


Message édité par dedemycat le 11-11-2006 à 11:37:21
------------------------------ J'ai une question ...
PHP est ce que c'est aussi php, Php, PHp,pHp, pHP et phP ???
Répondre à dedemycat

Non sa le fait toujours, mais merci quand meme, c'est gentil :)

Répondre à pinocchio@IDN

bon ba j'aurais essayer ...
je suis vraiment pas génial en C
moi mon dada c'est le php ... [:dedemycat]

preuve : hier qqun passé 1 heure cherché dans le programe pk mon robot ne suivait pa cette *** de ligne alors que rien cloché ... en tous cas dans le prog pasque j'ai viré la roulette avant et sa marché ... et oui les capteur se sont retrouvé a raz du sol ...


Message édité par dedemycat le 12-11-2006 à 18:36:56
------------------------------ J'ai une question ...
PHP est ce que c'est aussi php, Php, PHp,pHp, pHP et phP ???
Répondre à dedemycat

@pinocchio
tu t'attendais a ce qu'il fasse quoi ??


Message édité par Anonyme le 11-11-2006 à 11:54:53
Répondre à Anonyme

Qu'il corrige la grammaire.
C'est a dire, si il voit un signe ~, il mettrai que la grammaire est fausse ou si il vois (()), il met que la grammaire est vrai et ((), la grammaire est fausse

Répondre à pinocchio@IDN

Ok, je vois, mais pour le while ca serait pas plutot
while (!vide(s)&&(!termine)) au lieu de while (!vide(s), !termine).


Message édité par Anonyme le 11-11-2006 à 14:27:01
Répondre à Anonyme

Citation :

Mais lorceque j'écrit un point virgule ou , etc... le programme se ferme tout seul sans donner une reponse.


C'est un crash, généralement due à la lecture d'un pointeur invalide.

Répondre à CRicky

Je n'utilise pas de pointeur

Répondre à pinocchio@IDN

Merci a cart, tu as raison, sa marche maintenant :)
Merci aux autres quand meme pour avoir essayer de m'aider

Répondre à pinocchio@IDN
Tom's Guide > Forum > Programmation > Probleme pour programme c++ simple
Aller à :

Il y a 2380 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens