Bonjour,
J'ai besoin de connaître la taille d'une chaîne formatée pour réserver l'espace mémoire qui la contiendra.
Par exemple, si je veux faire sprintf(chaine, "Je m'appelle %s et j'ai %d ans\n", "Olivier", 37);, il me faudra réserver de quoi contenir "Je m'appelle Olivier et j'ai 37 ans", soit 35 caractères (si j'ai bien compté).
Le problème, c'est que si je peux avoir la taille avec la fonction printf, par exemple, je ne veux pas faire apparaître la chaîne avant son utilisation.
Malheureusement, je ne crois pas qu'on puisse réorienter un flux vers rien du tout ou procéder à un appel du type fprintf(NULL, ...) qui renverrait une erreur. Quand bien même, sans erreur, ce serait fichu de renvoyer 0.
J'aimerais éviter de passer par le fichier temporaire (même en utilisant tmpfile) pour y parvenir.
Je code en C ansi 89.
Merci d'avance pour vos réponses.
Partager