Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1137 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Probleme scanf et char

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme scanf et char

n°1522407
shadowdim
Perdu
Posté le 01-03-2007 à 16:43:16  profilanswer
 

:hello:

 

J'ai fait un petit jeu, plutôt simple, et a la fin je pose une question a l'utilisateur pour lui demander s'il veux rejouer ou non, et j'attend une reponse avec des caracteres ("oui" ou "non" )
Mais ça ne marche pas...
Mon code:

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. main()
  5. {
  6.      char rejouer[3], oui[3], non[3];
  7.      do
  8.      {
  9. long nombre1 = 0, nombre2 = 0, resultat = 0;
  10. //blablablacodealanoix
  11. scanf ("%s", &rejouer);
  12. }while (rejouer == oui);
  13. system("PAUSE" );
  14. return 0;
  15. }
 

Merci ;)
(oups, édité ^^')


Message édité par shadowdim le 01-03-2007 à 16:45:45

---------------
Mangas/DVD - Chiptune
mood
Publicité
Posté le 01-03-2007 à 16:43:16  profilanswer
 

n°1522408
0x90
Posté le 01-03-2007 à 16:46:17  profilanswer
 

Quels sont les messages d'erreurs ?

Message cité 1 fois
Message édité par 0x90 le 01-03-2007 à 16:59:36

---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1522409
Elmoricq
Modérateur
Posté le 01-03-2007 à 16:47:00  profilanswer
 

Il te faut réviser la mécanique des pointeurs : regarde le prototype de scanf().
Comme ton titre le fait très pertinemment remarquer, ton utilisation de scanf() est incorrecte, et tu as à peu près correctement isolé le code.

 

Autres remarques  :
- ta définition de main() est incomplète, normalement tu dois explicitement retourner un entier ( int main(void) )
- scanf() n'est pas une fonction à conseiller aux débutants, elle n'est pas triviale à maîtriser et sert, comme son nom l'indique, à la saisie formatée de données. Je te conseille de t'orienter vers fgets(), dans un premier temps.
- on ne compare pas deux chaînes de caractères avec "==". C'est faux : il faut utiliser strcmp(). Là, ton test ne compare que les pointeurs, pas le contenu des zones vers lesquelles ils pointent.
- si tes variables rejouer, oui et non sont sensées contenir "oui" ou "non", alors sache que tu n'as pas attribué suffisament d'espace à tes tableaux : en C, il faut prévoir une case de plus pour le caractère de fin de chaîne \0.

Message cité 1 fois
Message édité par Elmoricq le 01-03-2007 à 16:50:00
n°1522419
shadowdim
Perdu
Posté le 01-03-2007 à 17:13:11  profilanswer
 

0x90 a écrit :

Quels sont les messages d'erreurs ?


il n'y en a pas, mais je ne peux pas rejouer, quelque soit ma saisie.

Elmoricq a écrit :

Il te faut réviser la mécanique des pointeurs : regarde le prototype de scanf().
Comme ton titre le fait très pertinemment remarquer, ton utilisation de scanf() est incorrecte, et tu as à peu près correctement isolé le code.
 
Autres remarques  :  
- ta définition de main() est incomplète, normalement tu dois explicitement retourner un entier ( int main(void) )
- scanf() n'est pas une fonction à conseiller aux débutants, elle n'est pas triviale à maîtriser et sert, comme son nom l'indique, à la saisie formatée de données. Je te conseille de t'orienter vers fgets(), dans un premier temps.
- on ne compare pas deux chaînes de caractères avec "==". C'est faux : il faut utiliser strcmp(). Là, ton test ne compare que les pointeurs, pas le contenu des zones vers lesquelles ils pointent.
- si tes variables rejouer, oui et non sont sensées contenir "oui" ou "non", alors sache que tu n'as pas attribué suffisament d'espace à tes tableaux : en C, il faut prévoir une case de plus pour le caractère de fin de chaîne \0.


Merci beaucoup pour la reponse précise, pour les conseils, et pour le reste :o
 
-Pour scanf, je l'utilise en cours (je suis en seconde avec option MPI) et ça marche bien (mais on a pas touché aux char :/)
-Pour les variables qui doivent contenir une case de plus, je croyais que c'etait seulement quand j'avais besoin de les afficher... Merci :)
 
 :hello:


---------------
Mangas/DVD - Chiptune
n°1522426
bad___day
Posté le 01-03-2007 à 17:35:20  profilanswer
 

shadowdim a écrit :

Pour scanf, je l'utilise en cours (je suis en seconde avec option MPI) et ça marche bien ...


http://mapage.noos.fr/emdel/notes.htm#saisie


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Probleme scanf et char

 

Sujets relatifs
[C] probleme comprehensionAjax Probleme Open fichier XML IE7
[PHP] Probleme de variable dans une clause WHEREgetElementsByTagName probleme
Problème type "fatal error :Cannot instantiate..."probleme internet exporer 6 !!!
Problème de sécurité des donnéesProblème mineur localhost
Problème avec Expressions régulières preg_matchProbleme de string
Plus de sujets relatifs à : Probleme scanf et char


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR