Probleme comprenhension language c

kista -  
cmoivalou Messages postés 491 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis en train d'etuder stdarg.h, pour m'aider j'ai chercher sur le net des fonctions pour voir comment elle fonctionnait, j'ai trouver ceci sur ce site http://membres.lycos.fr/dancel/c/c70_140.htm

#include <stdio.h>
#include <stdarg.h>

void myprintf(char *format, ...) {
  va_list pa;
  int n;
  char *s, c;
  float f;
  
  va_start(pa, format);
  while (*format != '\0') {
    if ( *format == '%' ) {
      switch (*++format) {
        case '%' : putchar('%'); break;
        case 'c' : /* affichage d'un caractère */ 
                   c = va_arg(pa, char);
                   putchar(c);
                   break;
        case 'd' : /* affichage d'un entier */ 
                   n = va_arg(pa, int);
                   printf("%d", n); 
                   break;
        case 'f' : /* affichage d'un float */ 
                   f = va_arg(pa, double);    /* !!!!! */
                   printf("%f", f); 
                   break;
        case 's' : /* affichage d'une chaîne */ 
                   s = va_arg(pa, char *);
                   for ( ; *s != '\0'; s++ ) 
                     putchar( *s );
                   break;
      } /* end switch */
    }
    else 
      putchar( *format );
    format++;
  }   
  va_end(pa);
} 

main() {

  myprintf("float = %f\n", (float) 1.2345);
  myprintf("int = %d   char = %c   Chaine = %s\n",
             123, 'A', "C is beautiful !" );
  return 0;
}
/*-- résultat de l'exécution ---------------------------------
float = 1.234500
int = 123   char = A   Chaine = C is beautiful !
--------------------------------------------------------------*/


Pour m'en impregniez mieu j'ai remplacer les switch par des if car je suis encore un bon debutant
mais la ou je coince cest le switch(*++format), dans mes if jai enleve les ++ puis remis. je n'obtiens plus le meme resultat... donc voila si quelqu'un pouvais m'aiguiller cela m'aiderais a comprendre mieu cette lib

Merci a+

3 réponses

cmoivalou Messages postés 491 Date d'inscription   Statut Membre Dernière intervention   53
 
0
kista
 
tres utile comme reponse, va te chercher des amis.
j'attend beaucoup de ce poste alors viens pas ramener ta science bouffon tu sers a rien
0
cmoivalou Messages postés 491 Date d'inscription   Statut Membre Dernière intervention   53
 
T'es assez rapide pour apprendre l'orthographe, belle performance ;)
0