CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

C++ : problème Debugeur

vexover
vexover
Niveau 9
31 mai 2006 à 13:30:45

Bonjour j´utilise, l´IDE DEV C++, et j´ai l´impression que mon debuggeur bug XD. Voila mon problème, je programme un petit jeu de pendu d´entrainement, le code est pres sauf qu´a la compilation l´IDE s´arrête comme si une erreur dans le code persistait mais il ne l´indique pas . Que faire ??

kikou81
kikou81
Niveau 9
31 mai 2006 à 15:42:33

Il doit t´indiquer la line ou ce situ l´erreur mais il se peut que ton erreur ne soit pas que dans cette ligne un message du genre "error lign 51" signifie"sa commence a foiré a partir de la ligne 51"(ps : le numero n´etais pas choisi au hasard lol) sinon passe ton code pour que l´on corrige si il y a vraimment une erreur, je ne pense pas que l´erreur soit du a ton IDE ^^

dnob700
dnob700
Niveau 10
31 mai 2006 à 18:46:49

et même si c´est le cas, ça n´a rien à voir avec le débogueur, mais avec le compilo ou le l´éditeur de lien.

Tu peut aussi passer à Visual C++ express edition, qui est en téléchargement gratuit sur le site de microsoft. Beaucoup le considèrent très supérieur à Dev C++.

vexover
vexover
Niveau 9
31 mai 2006 à 20:05:58

dnob700,kikou81 >>> merci, j´ai resolu le problème mais maintenant un autre se pose : le prog à pas l´air de lire une conditionle code lis les instruction à l´interieur de la condition alors que les conditions sont mauvaises puis après le prog plante quand on utilise ma fonction scand ( subsitut de scanf que j´ai créer car il est impossible d´entrée 2 valeur à la suite dans une même variable avec scanf), pourriez vous m´aidez ? je met le code :

  1. include <stdio.h>
  2. include <stdlib.h>
  3. include <string.h>
  4. include <ctype.h>

char scand();
int main(int argc, char *argv[])
{
char motMystere[24] = "PAPIER";
char* lettreEntree = ´0´;
long compteur = 10;
long i = 0;
long a = 0;
long test = 0;
char caractereActuel = ´0´;
char caractereActuelBis = ´0´;

printf("Ceci est un pendu, le but du jeu est simple, je tire un mot au hazard, et vous, vous devez le trouvez, lettre par lettre, mais ATTENTION, vous n´avez le droit qu´a un certain nombre d´erreurs ;) \n\n\n\n");
printf("A vous de jouer !\ n\n\n\n");

printf("Il vous reste %ld coups a jouer.\n", compteur);
printf("Quel est le mot secret ? ");
i = 0;
while(caractereActuel != ´\0´)
{
caractereActuel = motMystere[i];

if(a = i + 1, test = 1, caractereActuel != ´\0´)
{
printf("%c", lettreEntree);
}
else if(caractereActuel != ´\0´)
{
printf("*");
}
i++;
}
printf("\n");
printf("Proposez une lettre : ");
lettreEntree = scand();
i = 0;
a = 0;
test = 0;
while (caractereActuelBis != ´\0´)
{
caractereActuelBis = motMystere[i];
i++;
if(caractereActuelBis = lettreEntree)
{
a = i + 1;
test = 1;
}
}
printf("\n\n\n");

system("PAUSE");
return 0;
}
char scand()
{
char caractere = 0;

caractere = getchar(); // On lit le premier ca
ractère
caractere = toupper(caractere); // On met la l
ettre en majuscule si elle ne l´est pas déjà

// On lit les autres caractères mémorisés un à
un jusqu´à l´\n (pour les effacer)
while (getchar() != ´\n´) ;

return caractere; // On retourne le premier ca
ractère qu´on a lu
}

le code affiche mot mystere : 000000 alors qu´il aurait du afficher, mot mystere : ****** .

vexover
vexover
Niveau 9
31 mai 2006 à 20:07:02

PS : le code n´est pas fini mais il devrait quand même marcher ...

dnob700
dnob700
Niveau 10
31 mai 2006 à 21:03:13

L´opérateur d´égalité est == et non pas = qui est l´opérateur d´afectation.

Donc, sauf si tu sais très bien ce que tu fait, tu veux utiliser == dans tout les if, au lieu de =.

D´autre part, pour utiliser scanf comme tu veux (ce qui est possible contrairement à ce que tu dis, il faut juste savoir comment), je te conseille d´aller voir le tuto de JYY :
http://perso.numericable.fr/~fvirtman/info/tuto/index.html section F.1.2 qui t´apprendra ce que tu veux.

kikou81
kikou81
Niveau 9
31 mai 2006 à 21:36:36

C´est pas un TP du site du zero ca?J´en avait fait un comme ca, c´etais bien dur a l´époque(3 semaine lol ^^)

vexover
vexover
Niveau 9
31 mai 2006 à 21:47:00

3 semaine Oo, lol je tiendrais pas jusque là moi au bout de 4 jours je craque XD.

vexover
vexover
Niveau 9
31 mai 2006 à 21:48:21

merci beaucoup dnob ^^

vexover
vexover
Niveau 9
31 mai 2006 à 22:15:25

J´ai toujours un problème ...
bien voila j´ai alléger un peu mon code et fais nomalement le necssaire, mais maintenant à place d´afficher ****** il n´afficher plus rien, le code est mainetenant :

  1. include <stdio.h>
  2. include <stdlib.h>
  3. include <string.h>
  4. include <ctype.h>

char scand();
int main(int argc, char *argv[])
{
char motMystere[24] = "PAPIER";
char lettreEntree = ´0´;
char lettreTrouvee[6] = {};
long compteur = 10;
long i = 0;

char caractereActuel = ´0´;

printf("Ceci est un pendu, le but du jeu est simple, je tire un mot au hazard, et vous, vous devez le trouvez, lettre par lettre, mais ATTENTION, vous n´avez le droit qu´a un certain nombre d´erreurs ;) \n\n\n\n");
printf("A vous de jouer !\ n\n\n\n");
while( compteur > 0 && lettreTrouvee != 1 )
{

printf("Il vous reste %ld coups a jouer.\n", compteur);
printf("Quel est le mot secret ? ");
i = 0;
while (caractereActuel != ´\0´, i++)
{
caractereActuel = motMystere[i];

if (lettreEntree == caractereActuel )
{
printf("%c", lettreEntree);
}
else
{
printf("*");
}
i++;
}
printf("\n");
printf("Proposez une lettre : ");
lettreEntree = scand();

caractereActuel = ´0´;
printf("\n\n\n");

}

system("PAUSE");
return 0;
}
char scand()
{
char caractere = 0;

caractere = getchar(); // On lit le premier ca
ractère
caractere = toupper(caractere); // On met la l
ettre en majuscule si elle ne l´est pas déjà

// On lit les autres caractères mémorisés un à
un jusqu´à l´\n (pour les effacer)
while (getchar() != ´\n´) ;

return caractere; // On retourne le premier ca
ractère qu´on a lu
}

le code affiche don mot mystere ? au lieu de mot mystere ? ******

dnob700
dnob700
Niveau 10
31 mai 2006 à 23:43:58

normal, ton test
while( compteur > 0 && lettreTrouvee != 1 )

empêche de rntrer dans la boucle vu que compteur==0 au début.

D´autre par, LettreTrouvee est un tableau, et donc un pointeur, donc comparer sa valeur avec 1 n´ pas de sens, ce n´est probablement pas cela que tu veux faire.

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment