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

  FORUM HardWare.fr
  Programmation
  C

  [C] probleme sprintf et pointeur :S

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] probleme sprintf et pointeur :S

n°1953124
Noobzor
Posté le 24-12-2009 à 21:31:23  profilanswer
 

Bonsoir tout le monde :  
 
Voila le souci : Je souhaite stocker des chaines de caractères lorsque qu'elle répondent a certaines conditions
Ces chaines de caractères sont des numéros de carte-bleu.
Je souhaite les stocker dans un tableau de int :  
 
 
char *numero_carte = malloc(16); // un numéro de carte = 16 caractères.
int carte[3] = {0} ;  // Il y aurai 3 numéros de carte a stocké dans  ce tableau.
int j = 0;
 
int nb = sscanf(info_carte, "|%[^|]|%[^|]|\n", numero_carte, montant_carte); // je recupere numero_carte qui  est contenu dans info_carte. Jusque la tout va bien, le numero de carte est bien recupere (testé). Puis ...
 
if (strncmp(numero_carte, "0002", 4) == 0){                           // test les 4 premiers chiffres de la carte
  sprintf(carte[j], "%s", numero_carte);                   // Cette ligne ne passe pas  
                j++;
}
 
Il y a bien entendu un for qui englobe tout cela, a chaque corps de boucle info_carte est diffèrent.
 
 
Je n'ai pas l'impression de pouvoir etre plus clair, mais je n'ai pas l'impression de l'avoir été non plus :S
Besoin de votre aide !!
 
Et bonne fete surtout ;)

mood
Publicité
Posté le 24-12-2009 à 21:31:23  profilanswer
 

n°1953128
__tomjost
c'est un pseudo !
Posté le 24-12-2009 à 23:50:05  profilanswer
 

Hello  :D  
bien claire pour le tout!  
mais //cette ligne ne passe pas ????? undetailed
 
... ok je vois que tu ne reset pas j , j++ ou elle va aller
 tu a 3 numeros! :pfff:  

n°1953132
Joel F
Real men use unique_ptr
Posté le 25-12-2009 à 01:54:46  profilanswer
 

tu passes un int alors que to' snprintf attend une chaîne  

n°1953168
Noobzor
Posté le 25-12-2009 à 15:53:45  profilanswer
 

Merci pour vos reponses!
 
Alors lors de la compilation il ya le warning suivant "passing arg 1 of sprintf makes pointer from integer without a cast"
 
Si j'execute le programme il me renvoie un "segmentation fault".
 
 
J'ai donc changer le type de mon tableau en le déclarant comme suit :  
 
int *carte[3] = {0};
 
Compilation : passing arg 1 of sprintf from incompatible ponter type.
Execution : segmentation fault.
 
Donc changement de nouveau en char *carte[3] = {0};
 
Compilation : plus de warning !
Execution : Segmentation fault encore !
 
 
Je suis un peu perdu dans ces histoire de pointeur et encore plus sur les pointeur de tableau ou tableau de pointeur plutot....
 
 
@_tomjost : j'incremente j à chaque fois que le tableau se rempli afin de stocker un numero de carte dans chaque case... cela me parait normal.
 
 
Je précise que j'utilise Cygwin comme machine virtuelle.

n°1953169
Joel F
Real men use unique_ptr
Posté le 25-12-2009 à 18:34:38  profilanswer
 

c'ets pas ça le probleme. Regarde les types de tes variables. carte[i] est un ENTIER, %s attend une chaine de caractere, c'est incompatible.
 
Si tu veut CONVERTIR la chaine contenant "1234567" en entier valant 1234567, regarde du coté des fonctions strtoul et consoeurs

n°1953170
404 Not Fo​und
Posté le 25-12-2009 à 18:53:00  profilanswer
 

Et y'a pas de fin de ligne dans numero_carte :o


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

  [C] probleme sprintf et pointeur :S

 

Sujets relatifs
Probleme url dans les sous dossiersprobleme avec fonction
C# - FileCopyProbleme de recuperation dans un fichier texte
[Resolu][C++] Question Architecture avec interface multiple[JAVA] Problème méthode
Triangle en CProblème suppression accents [RESOLU]
Problème de structure et fichiersProbléme avec les BDD
Plus de sujets relatifs à : [C] probleme sprintf et pointeur :S


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