Rechercher : dans
Par :

Probleme comprenhension language c

Dernière réponse le 11 nov 2009 à 19:23:46 kista, le 11 nov 2009 à 19:06:26 
 Signaler ce message aux modérateurs

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+
Configuration: FreeBSD
Firefox 2.0.0.6

Meilleures réponses pour « probleme comprenhension language c » dans :
Langage C++ - Les types de données Voir Les types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître...
Langage C - Les types de données Voir Les types de données Les données manipulées en langage C sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le...
Langage C - Les chaînes de caractères Voir Qu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...
[Langage C] C/C++ Erreur de segmentation VoirQu'est ce qu'une erreur de segmentation Vous êtes en train de développer une application sous Linux en C/C++. Tout va bien, ça compile, les oiseaux chantent. Donc vous lancez votre application pour la tester. Et vous obtenez l'un de ces deux...
Les files en langage C VoirLes files - Premier Entré Premier Sorti Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la file IV. Opérations sur les files A. Initialisation B. Insertion d'un élément dans la file C. Oter un...
Les piles en langage C VoirLes piles Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la pile IV. Opérations sur les piles A. Initialisation B. Insertion d'un élément dans la pile C. Ôter un élément de la pile D. Affichage...
Langage C - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage C sont typées, c'est-à-dire que les données contenues dans...
Introduction au langage C VoirPetite histoire du C Le langage C a été mis au point par D.Ritchie et B.W.Kernighan au début des années 70. Leur but était de permettre de développer un langage qui permettrait d'obtenir un système d'exploitation de type UNIX portable. D.Ritchie...

1

cmoivalou, le 11 nov 2009 à 19:07:34
Répondre à cmoivalou

2

kista, le 11 nov 2009 à 19:20:26

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

Répondre à kista

3

 cmoivalou, le 11 nov 2009 à 19:23:46

T'es assez rapide pour apprendre l'orthographe, belle performance ;)

Répondre à cmoivalou