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 voiture cause décès - Forum Vos droits sur internet
- Donne camping-car gratuit - Forum Vos droits sur internet
- Rémi et safia ont découvert le code binaire des nombres en cours d'informatique. ils l'utilisent pour se donner des rendez-vous secrets. ils ont décidé que : un message comporte 5 bits et donne le jour puis le moment les jours et les moments sont traduits par les nombres comme ci-dessous - Forum Programmation
- Arnaque camping-car sur le bon coin - Forum Vos droits sur internet
- Donnez à ce fichier les mêmes droits d'accès que les autres notes de service - 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 522
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];