En C sprintf me donne que des zeros ??
xfred
-
kilian Messages postés 8732 Date d'inscription Statut Modérateur Dernière intervention -
kilian Messages postés 8732 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
jai refait une partir de mon prog qui me renvoie qu'une escalade de zero jaimerais comprendre,
voici le code :
merci d'avance
jai refait une partir de mon prog qui me renvoie qu'une escalade de zero jaimerais comprendre,
voici le code :
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) //FONCTION MAIN { double formated[8] = {0}; 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}; formated[0] = 1234.5435; formated[1] = 124434.5435; formated[2] = 34.5435; formated[3] = 143321.5435; formated[4] = 1234.5434535; formated[5] = 1234.55; formated[6] = 0.0000; formated[7] = 0.0000; sprintf(donee_formate1,"%lf",formated[0]); sprintf(donee_formate2,"%lf",formated[1]); sprintf(donee_formate3,"%lf",formated[2]); sprintf(donee_formate4,"%lf",formated[3]); sprintf(donee_formate5,"%lf",formated[4]); sprintf(donee_formate6,"%lf",formated[5]); sprintf(donee_formate7,"%lf",formated[6]); sprintf(donee_formate8,"%lf",formated[7]); printf("----\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n ",donee_formate1,donee_formate2, donee_formate3,donee_formate4,donee_formate5,donee_formate6,donee_formate7,donee_formate8 ); return EXIT_SUCCESS; }
merci d'avance
A voir également:
- En C sprintf me donne que des zeros ??
- Comment mettre des zéros devant un nombre sur excel - Guide
- Donnez à ce fichier les mêmes droits d'accès que les autres notes de service. - Forum Réseau
- On vous a donné accès à un fichier rapport. il est partagé avec plusieurs personnes sur cet espace pix cloud. répondez aux questions - Forum Cloud
- Rose et noir donne quelle couleur - Forum Graphisme
- Vous n’avez pas donné accès à votre micro à facebook - Forum Windows
1 réponse
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];