... dans le prototype d'une fonction

Signaler
Messages postés
35
Date d'inscription
jeudi 12 septembre 2002
Statut
Membre
Dernière intervention
25 octobre 2006
-
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
-
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

Messages postés
17
Date d'inscription
dimanche 4 mai 2003
Statut
Membre
Dernière intervention
23 mai 2004

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);
Messages postés
17
Date d'inscription
dimanche 4 mai 2003
Statut
Membre
Dernière intervention
23 mai 2004

PS: sinon tu peux aller voir ma source Classe chaine, la méthode Format, en remplacant bien sur vsprintf par vfprintf
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
#include <stdarg.h> et va voir les macros

et la surcharge n'existe en c