En C sprintf me donne que des zeros ??
xfred
-
kilian Messages postés 8854 Statut Modérateur -
kilian Messages postés 8854 Statut Modérateur -
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
- L'url suivante, censée aboutir à un article, donne lieu à une redirection indiquant que la page n'a pas été trouvée. retrouvez la page recherchée. reportez le titre de l’article et son auteur. - Forum Microsoft Edge / Internet Explorer
- 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
- Dans le document à télécharger, placez les 2 images côte à côte et donnez-leur la même hauteur. marie a gagné un lot à l’un des trois tirages. qu’a-t-elle gagné ? ✓ - Forum Word
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];