[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