utiliser des define dans le format d'un fprintf
Bonjour,
J'ai défini les define suivant
Code:
1 2 3
| #define taille_max_msg 1976
#define taille_max_msg_03 1582 |
Pour ne changer la taille d'un message qu'à un endroit.
Avant nous avions le code suivant.
Code:
1 2
| fprintf(fic_messages, "%13s%02s%-1976s\n",
msg_ts.wmsg_ven_num, msg_ts.wmsg_msg_typ, msg_ts.wmsg_msg_msg); |
Que j'ai transformé ainsi
Code:
1 2
| fprintf(fic_messages, "%13s%02s%-taille_max_msgs\n",
msg_ts.wmsg_ven_num, msg_ts.wmsg_msg_typ, msg_ts.wmsg_msg_msg); |
Bien évidemment cela ne donne pas le même résultat, je devais dormir quand j'ai écrit ça.
Maintenant la question est comment obtenir le même résultat, avec quelque chose d'élégant et de lisible
J'ai pensé à ceci, mais je trouve cela, pas très lisible.
Code:
1 2 3 4 5 6
| char format[100];
strcpy(format,"%13s%02s%-");
strcat(format,itoa(taille_max_msg));
strcat(format,"s\n");
fprintf(fic_messages, format,
msg_ts.wmsg_ven_num, msg_ts.wmsg_msg_typ, msg_ts.wmsg_msg_msg); |
Avez vous une autre idée?
PS : Je sais que itoa n'est pas standard, mais il existe dans mon application.
Cordialement
soazig