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

  FORUM HardWare.fr
  Programmation
  C

  Problème bizarre avec GCC (pour débutant)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème bizarre avec GCC (pour débutant)

n°1569218
SonicBoom
Posté le 03-06-2007 à 03:27:05  profilanswer
 

Salut tout le monde,  
Voila j’ai un petit souci, qui commence à me casser la tète, avec GCC.
Je veux faire un programme très simple qui se déroule de cette manière :  
1- Je saisi un entier A
2- Je saisi un entier B
3- Je saisi un caractère CARAC
4- J’additionne A et B
5- J’affiche le résultat  
 
Le résultat affiché est alors incorrect ! (il correspond à A...).
J’ai  testé le programme sur Dev C++, là aucun problème, le résultat est correct.
 

Code :
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. int main()
  4. {
  5.     int A, B, C;
  6.     char CARAC;
  7.     printf("A : " );
  8.     scanf("%i", &A);
  9.     printf("B : " );
  10.     scanf("%i", &B);
  11.     printf("CARAC : " );
  12.     scanf("%s", &CARAC);
  13.     C = A + B;
  14.     printf("%i \n", C);
  15.     return 0;
  16. }


 
Lorsque je saisie le caractère CARAC avant les entiers A et B, il n’y a en revanche aucun problème.
Quelqu’un pourrait il m’expliquer un peu ? Merci d’avance
 :jap:

mood
Publicité
Posté le 03-06-2007 à 03:27:05  profilanswer
 

n°1569226
Joel F
Real men use unique_ptr
Posté le 03-06-2007 à 09:12:57  profilanswer
 

www.chezmoicamarche.com
 
blague à part, évites scanf et préféres y fgets suivi d'une phase de parsing manuel, cf :
 
http://mapage.noos.fr/emdel/notes.htm#saisie
http://mapage.noos.fr/emdel/inputs.htm

n°1569320
matafan
Posté le 03-06-2007 à 17:28:27  profilanswer
 

Dans ton source CARAC c'est 1 char. Tu ne peux pas y stocker de chaine, même de chaine d'un seul caractère : une chaine d'un caractère, c'est deux char (le char et le 0 final).
 
Il faut donc soit utiliser %c, soit char CARAC[2].
 
Ensuite utilisé comme ça, scanf ne fait pas de controle sur la longueur de la saisie. Si tu entres plus d'1 caractère, ça va déborder sur le reste de la pile.


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

  Problème bizarre avec GCC (pour débutant)

 

Sujets relatifs
[Visual C++] serialize débutantProblème fgets suite à changement d'OS
probleme compilation XPCOM/C++Probleme avec la bibliothèque/toolbox Dojo (Javascript)
Problème variable static - application web tomcat[ORACLE] Problème execution requête SELECT
Problème de sécurité (accès à une section admin)Probleme vérification
probleme web serviceProblème de Makefile [Résolu]
Plus de sujets relatifs à : Problème bizarre avec GCC (pour débutant)


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