# Erreur dans mon code

**URL:** <https://www.debian-fr.org/t/erreur-dans-mon-code/86172>\
**Category:** Programmation\
**Created:** [Février 22, 2022, 6:09 UTC](https://www.debian-fr.org/t/erreur-dans-mon-code/86172 "2022-02-22T18:09:05Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![Pat66](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pat66/32/11445_2.png) [@Pat66](https://www.debian-fr.org/u/Pat66)\
**Post date:** [Février 22, 2022, 6:09 UTC](https://www.debian-fr.org/t/erreur-dans-mon-code/86172/1 "2022-02-22T18:09:05Z")

</div>

Bonsoir  
ceci est un bout de code qui demande un pseudo et un mot de passe  
le probleme est que lorsque je j entre un caractere j ai ensuite directement

le mot `Exact` du `if (pass==310)`  
et non la saisie du mot de passe  
Merci.

```auto
int main ()
{
char user='p';
int pass=310;

printf ("saisissez votre pseudo\n");
scanf ("%c\n",&user);
printf ("Entrez votre mot de passe\n");
scanf ("%d\n",&pass);

while (pass!=310)
{
printf ("Reessayez\n");
}
if (pass==310);
{ printf ("Exact\n");
}
return o;
}

}

```

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Février 22, 2022, 6:14 UTC](https://www.debian-fr.org/t/erreur-dans-mon-code/86172/2 "2022-02-22T18:14:11Z")

</div>

C’est en quel langage?

---

<div class="post-metadata">

**Author:** ![Pat66](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pat66/32/11445_2.png) [@Pat66](https://www.debian-fr.org/u/Pat66)\
**Post date:** [Février 22, 2022, 6:24 UTC](https://www.debian-fr.org/t/erreur-dans-mon-code/86172/3 "2022-02-22T18:24:38Z")

</div>

c est du C

---

<div class="post-metadata">

**Author:** ![nicola](https://www.debian-fr.org/user_avatar/www.debian-fr.org/nicola/32/8969_2.png) [@nicola](https://www.debian-fr.org/u/nicola)\
**Post date:** [Février 22, 2022, 7:09 UTC](https://www.debian-fr.org/t/erreur-dans-mon-code/86172/4 "2022-02-22T19:09:17Z")

</div>

Tu devrais plutôt considérer que ton mot de passe est une chaîne de caractères et non un nombre.  
De plus, tu ne redemandes pas le mot de passe donc ton programme boucle indéfiniment.

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Février 22, 2022, 8:22 UTC](https://www.debian-fr.org/t/erreur-dans-mon-code/86172/5 "2022-02-22T20:22:17Z")

</div>

De même, prend l’habitude de nommer tes variable avec son type devant:  
int iNombre;  
char sMoimemer(34); (s pour String)

etc…

---

<div class="post-metadata">

**Author:** ![jipete](https://www.debian-fr.org/user_avatar/www.debian-fr.org/jipete/32/11729_2.png) [@jipete](https://www.debian-fr.org/u/jipete)\
**Post date:** [Février 22, 2022, 11:18 UTC](https://www.debian-fr.org/t/erreur-dans-mon-code/86172/6 "2022-02-22T23:18:22Z")

</div>

```auto
#include <stdio.h>

int main ()
{
  char user; //='p';
  int pass; //=310;

  printf ("saisissez votre pseudo (ATTENTION : 1 seul caractère autorisé : )");
  scanf ("%c",&user);
  printf ("Entrez votre mot de passe : ");
  scanf ("%d",&pass);
  
  while (pass!=310)
  {
    printf ("Reessayez : ");
    scanf ("%d",&pass);
  }
  
  if (pass==310);
  { 
    printf ("Exact\n");
  }
  return 0;
}

```

```auto
> ./essai 
saisissez votre pseudo (ATTENTION : 1 seul caractère autorisé) : b
Entrez votre mot de passe : 300
Reessayez : 310
Exact

```

---

<div class="post-metadata">

**Author:** ![nicola](https://www.debian-fr.org/user_avatar/www.debian-fr.org/nicola/32/8969_2.png) [@nicola](https://www.debian-fr.org/u/nicola)\
**Post date:** [Février 23, 2022, 8:27 UTC](https://www.debian-fr.org/t/erreur-dans-mon-code/86172/7 "2022-02-23T08:27:02Z")

</div>

jipete, le test après la sortie du while est inutile puisque, justement, pass vaut 310 quand on en sort.  
Que fait le programme si on rentre un mot de passe avec des lettres ?

---

<div class="post-metadata">

**Author:** ![jipete](https://www.debian-fr.org/user_avatar/www.debian-fr.org/jipete/32/11729_2.png) [@jipete](https://www.debian-fr.org/u/jipete)\
**Post date:** [Février 23, 2022, 8:33 UTC](https://www.debian-fr.org/t/erreur-dans-mon-code/86172/8 "2022-02-23T08:33:41Z")

</div>

> [@nicola](#):
>
> jipete, le test après la sortie du while est inutile puisque, justement, pass vaut 310 quand on en sort.

Exact et bien vu, mais faut dire aussi que j’ai fait ça en 3 minutes et à pas d’heure, plus trop les yeux en face des trous après une grosse après-midi à faire de la typo et de la mise en page…

> [@nicola](#):
>
> Que fait le programme si on rentre un mot de passe avec des lettres ?

Pas testé mais on peut supposer qu’il va se vautrer en nous insultant, 🤣

Comme je dis toujours, pour une ligne de code EDIT ~~efficace~~ utile /EDIT, la blinder avec 10 lignes de tests divers et variés.

---

<div class="post-metadata">

**Author:** ![Pat66](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pat66/32/11445_2.png) [@Pat66](https://www.debian-fr.org/u/Pat66)\
**Post date:** [Février 23, 2022, 10:19 UTC](https://www.debian-fr.org/t/erreur-dans-mon-code/86172/9 "2022-02-23T10:19:05Z")

</div>

Bonjour jipete

merci a present le code marche en revanche quand j entre des caracteres en lieu et place du mot de passe 310  
le message contenu dans la condition IF s 'execute.

des explications SVP

---

<div class="post-metadata">

**Author:** ![jipete](https://www.debian-fr.org/user_avatar/www.debian-fr.org/jipete/32/11729_2.png) [@jipete](https://www.debian-fr.org/u/jipete)\
**Post date:** [Février 23, 2022, 10:30 UTC](https://www.debian-fr.org/t/erreur-dans-mon-code/86172/10 "2022-02-23T10:30:13Z")

</div>

Pas compris.

Fais voir le code **exact** que tu compiles, et qu’est-ce que tu appelles «&nbsp;des caractères&nbsp;» ?

---

<div class="post-metadata">

**Author:** ![Pat66](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pat66/32/11445_2.png) [@Pat66](https://www.debian-fr.org/u/Pat66)\
**Post date:** [Février 23, 2022, 11:08 UTC](https://www.debian-fr.org/t/erreur-dans-mon-code/86172/11 "2022-02-23T11:08:46Z")

</div>

par caracteres j entend une lettrev j ai trouve l erreur

---

<div class="post-metadata">

**Author:** ![jipete](https://www.debian-fr.org/user_avatar/www.debian-fr.org/jipete/32/11729_2.png) [@jipete](https://www.debian-fr.org/u/jipete)\
**Post date:** [Février 23, 2022, 11:12 UTC](https://www.debian-fr.org/t/erreur-dans-mon-code/86172/12 "2022-02-23T11:12:45Z")

</div>

> [@Pat66](#):
>
> par caractères j’entend une lettre j’ai trouvé l’erreur

Tu nous ferais un retour plus précis, ça serait cool.

---

<div class="post-metadata">

**Author:** ![Pat66](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pat66/32/11445_2.png) [@Pat66](https://www.debian-fr.org/u/Pat66)\
**Post date:** [Février 23, 2022, 11:13 UTC](https://www.debian-fr.org/t/erreur-dans-mon-code/86172/13 "2022-02-23T11:13:40Z")

</div>

a present j ai un autre souci je fais expres de taper un faux mot de passe

et la le message contenu dans la boucle s affiche indefiniment une idee de comment faire pour cette boucle n affiche le message qu une fois ?

NB:je suis un bougre de debutant autodidacte

---

<div class="post-metadata">

**Author:** ![Pat66](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pat66/32/11445_2.png) [@Pat66](https://www.debian-fr.org/u/Pat66)\
**Post date:** [Février 23, 2022, 11:22 UTC](https://www.debian-fr.org/t/erreur-dans-mon-code/86172/14 "2022-02-23T11:22:30Z")

</div>

en debut du code j ai initialise la variable int pass a 310 j ai retire la valeur puis recompile

---

<div class="post-metadata">

**Author:** ![Ksynet](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ksynet/32/12919_2.png) [@Ksynet](https://www.debian-fr.org/u/Ksynet)\
**Post date:** [Février 27, 2022, 10:05 UTC](https://www.debian-fr.org/t/erreur-dans-mon-code/86172/15 "2022-02-27T10:05:35Z")

</div>

```
do {
    ...
} while (...);

```

fonctionne bien aussi, ça évite d’avoir 2 scanf ^^
