[Dcmlib] sprintf
Mathieu Malaterre
mathieu.malaterre at kitware.com
Fri Oct 8 17:57:18 CEST 2004
Ok deux approches ici. Je suis pas fan non plus des iostream pour
formater des hex, ex:
sprintf(buffer, "%04x|%04x", group , element);
devient
std::ostringstream buf;
buf << std::right << std::setw(4) << std::setfill('0') << std::hex <<
group << "|" << std::right << std::setw(4) << std::setfill('0') <<
std::hex << element;
std::string key = buf.str();
... no comment
Ou apres une question dans comp.lang.c++
Les gens utilise des solutions du genre:
#include <stdarg.h>
#include <stdio.h>
std::string format(const char* format, ...)
{
char buffer[2048];
va_list args;
va_start(args, format);
vsprintf(buffer, format, args);
return buffer;
}
Donc typiquement un truc dans gdcmUtil.cxx
J'ai fais un grep en fait dans gdcm on a /pour l'instant/ qu'un seul
sprintf et c'est celui du mail. Donc une solution generique pour un seul
type de formatage est-ce raisonable ?
Avis/commentaires
Mathieu
Ps: y parait que boost a une bien meilleur approche pour ce genre de
truc, avec un peu de chance c'est dans la norme c++ et d'ici 10 ans tous
les compilos supporteront une 'printf like attitude' pour les iostream :P
More information about the Dcmlib
mailing list