Bonjour,
Qqun sait à quoi servent vprintf() et vfprintf() ?On en parle vaguement dans mon livre mais sans donner d'exemple ,moi je les ai essayées et apparamment le résultat est le même que printf () et fprintf ()
Merci
Zazeglu
Bonjour,
Qqun sait à quoi servent vprintf() et vfprintf() ?On en parle vaguement dans mon livre mais sans donner d'exemple ,moi je les ai essayées et apparamment le résultat est le même que printf () et fprintf ()
Merci
Zazeglu
Le résultat oui, mais le format d'appel est différent. Dans printf, tu passes les arguments directement à la fonction. Dans vprintf, tu passes une va_list qui pointe vers tes arguments.
Quel est l'intérêt ?
C'est tout simplement si tu veux créer une fonction à arguments variables que tu voudrais ensuite passer à un printf par exemple. Dans ce cas tu es obligé de passer par va_list.
Voici l'exemple d'une fonction de type printf mais qui non seulement l'affiche, mais aussi l'enregistre dans un fichier de logs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 FILE* flog; void logprintf(const char* fmt, ...) { va_list v; va_start(v, fmt); vprintf(fmt, v); va_end(v); va_start(v, fmt); vfprintf(flog, fmt, v); va_end(v); }
Responsable technique forum & site
Si ce message (ou un autre) vous a aidé et/ou vous semble pertinent, votez pour lui avec
Merci bien ; mais c'est quoi une va_list ?Je n'ai pas encore étudier le passage de nombre variable d'argument à un fct en faite
Zazeglu
va_list est simplement un typedef de char*, donc va_list v c'est juste char* v.
En gros, on fait pointer v sur le 1er paramètre grâce à va_start, puis on peut le faire pointer successivement sur chacun des paramètres si on connait leur taille, ou simplement l'utiliser dans vprintf ou vfprintf.
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
Merci bien
Au fait ,je ne sais pas si je te l'ai déja dit mais :
"Heureux l'étudiant qui, comme la rivière, peut suivre son cours sans sortir de son lit" [Patrick Lemmers]
"Avec tes sockets et ton c sharp tu auras pas froid cet hiver" [Cyrille P. aka "Z"]
Zazeglu
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager