En C sprintf me donne que des zeros ??
Fermé
xfred
-
18 sept. 2009 à 00:42
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 18 sept. 2009 à 05:44
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 18 sept. 2009 à 05:44
A voir également:
- En C sprintf me donne que des zeros ??
- Donne camping-car gratuit - Forum Vos droits sur internet
- Nouvelle arnaque au camping-car en don - Forum Vos droits sur internet
- Donne-moi l'adresse - Guide
- J'ai donné mon numéro de téléphone a un inconnu - Forum Mobile
- Comment mettre des zéros devant un nombre sur excel - Guide
1 réponse
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
18 sept. 2009 à 05:44
18 sept. 2009 à 05:44
Yo!
En faisant ça:
Tu crées 8 tableaux de caractères qui n'ont qu'une case.
Ce n'est pas assez pour stocker des caractères. Tu as besoin de nb caractères + le caractère de terminaison de chaine.
Tu peux leur donner 50 octets chacun, pas de soucis, et pas besoin de les initialiser à zero, sprintf insèrera le caractère de terminaison de chaine et printf n'ira pas lire plus loin.
Donc remplace par:
En faisant ça:
char donee_formate1[] = {0};char donee_formate2[] = {0}; char donee_formate3[] = {0};char donee_formate4[] = {0}; char donee_formate5[] = {0};char donee_formate6[] = {0}; char donee_formate7[] = {0};char donee_formate8[] = {0};
Tu crées 8 tableaux de caractères qui n'ont qu'une case.
Ce n'est pas assez pour stocker des caractères. Tu as besoin de nb caractères + le caractère de terminaison de chaine.
Tu peux leur donner 50 octets chacun, pas de soucis, et pas besoin de les initialiser à zero, sprintf insèrera le caractère de terminaison de chaine et printf n'ira pas lire plus loin.
Donc remplace par:
char donee_formate1[50]; char donee_formate2[50]; char donee_formate3[50]; char donee_formate4[50]; char donee_formate5[50]; char donee_formate6[50]; char donee_formate7[50]; char donee_formate8[50];