... dans le prototype d'une fonction

wizzo Messages postés 35 Date d'inscription jeudi 12 septembre 2002 Statut Membre Dernière intervention 25 octobre 2006 - 16 mai 2004 à 11:57
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 - 16 mai 2004 à 12:24
bonjour !

Alors voila, je voulais faire une fonction qui en une ligne me permette d'ecris dans un fichier, cad que d'habitude pour faire ça, on fait :

FILE * fp = fopen(path, mode);
fprintf(fp, string, param);
fclose(fp);

le but, c'est de faire un truc du genre

writef(path, mode, string, param);

la 1ere possibilité, c'est de faire des surcharge de fonctions pour chaque cas, mais bon, c tres moche en plsu d'etre long a faire

puis g cherché dans stdio.h, et vu que le prototype de fprintf() était le suivant :
_CRTIMP int __cdecl fprintf(FILE *, const char *, ...);

les ... ne sont pas la uniquement pour economiser de l'espace dans le header (je pensais que ct juste une maniere rapide de reécris chaque surcharge, mais non)
en effet, lorsque je met ... dans le proto de ma fonction, il cherche une fonction dont le proto est VRAIMENT ecris avec ...

Le prob, c'est que je ne sais pas comment rediriger les n parametres dans la fonction fprintf

Si quelqu'un peut m'aider.... merci d'avance
wizzo

3 réponses

cs_guimou Messages postés 17 Date d'inscription dimanche 4 mai 2003 Statut Membre Dernière intervention 23 mai 2004
16 mai 2004 à 12:10
Il faut faire une fonction writef(path, mode, string, ...);

dedans tu crée une va_list, tu l'initialises avec va_start
puis tu appelles vfprintf(pFile, string, theVaList);
0
cs_guimou Messages postés 17 Date d'inscription dimanche 4 mai 2003 Statut Membre Dernière intervention 23 mai 2004
16 mai 2004 à 12:13
PS: sinon tu peux aller voir ma source Classe chaine, la méthode Format, en remplacant bien sur vsprintf par vfprintf
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
16 mai 2004 à 12:24
#include <stdarg.h> et va voir les macros

et la surcharge n'existe en c
0
Rejoignez-nous