Le deuxieme parametre de printf
doumbia.danse
Messages postés
46
Date d'inscription
Statut
Membre
Dernière intervention
-
doumbia.danse Messages postés 46 Date d'inscription Statut Membre Dernière intervention -
doumbia.danse Messages postés 46 Date d'inscription Statut Membre Dernière intervention -
Bonsoir,
Au fait j'arrive pas à bien comprendre la signification du deuxième paramètre la fonction
Au fait j'arrive pas à bien comprendre la signification du deuxième paramètre la fonction
printf, bien sûr je parle de ce symbole
...,
A voir également:
- Le deuxieme parametre de printf
- Deuxieme ecran pc - Guide
- Remettre parametre usine pc - Guide
- Parametre dns - Guide
- Parametre windows - Guide
- Netflix paramètre compte - Guide
3 réponses
Bonsoir je vais reprendre ce que @KX à dit dans son dernier poste pour l'approfondir, ses fonctions sont appelé "fonction à nombre d'arguments variables" et la majeure partie de ces variables je ne parle pas forcément de
Sans rentré plus en détail sur chaque fonction je t'invite a consulté le manuel de stdarg.hsur les instruction
bref un exemple sera mieux qu'un long discours
Attention le code est un exemple
à bientôt
Toute connaissance est une réponse à une question.
printf()utilise une / des macro qui est va_start pour affecter un pointeur X vers le tout premier argument de la pile et va_end pour terminer en gros lorsque le traitement de cette pile est finie.
Sans rentré plus en détail sur chaque fonction je t'invite a consulté le manuel de stdarg.hsur les instruction
va_list, va_arg, va_start etc..
bref un exemple sera mieux qu'un long discours
Attention le code est un exemple
à bientôt
#include <stdio.h> #include <stdarg.h> /** * Attention dans cette exemple j'utilise * printf & c'est un choix volentaire * le code est pas optimiser attention **/ void f_ExempleAvancer( char *pStr, ... ){ va_list List; //Liste va_start( List, pStr ); while( *pStr ){ if( *pStr == '%' ){ switch( *(++pStr) ){ case 's' : printf( "Chaîne \t\t: %s\n", (char*)va_arg(List,char*) ); break; case 'd': printf( "Entier / Operation\t: %d\n", (int)va_arg(List, int) ); break; case 'f': printf( "Double / Operation\t: %f\n", (float)va_arg(List, double)); break; default: perror( "format inconnu\n" ); break; } } pStr++; } va_end(List); } //Fonction principale int main( void ){ //Teste de la Fonction Avancer f_ExempleAvancer("%s\t,%s \n", "@KX est ", "Modérateur"); f_ExempleAvancer("%s %s %d %f \n", "Bonjour", "@sambia39", 2+2, 10/5.2); return ( 0 ); }
Toute connaissance est une réponse à une question.
doumbia.danse
Messages postés
46
Date d'inscription
Statut
Membre
Dernière intervention
Merci beaucoup Sambia39 , c'est exactement ce que je cherchais.
Bonjour,
Ça veut dire que tu peux mettre 0 paramètre, 1 paramètre ou plusieurs paramètres. Cela va dépendre du nombre de pattern que tu vas mettre dans le premier paramètre. Exemples :
Ça veut dire que tu peux mettre 0 paramètre, 1 paramètre ou plusieurs paramètres. Cela va dépendre du nombre de pattern que tu vas mettre dans le premier paramètre. Exemples :
printf("Hello World! "); printf("Hello %s !", "World"); printf("%s %s !", "Hello", "World");
je sais leur rôle mais c'est plutôt le type même que je veux connaitre, comme par exemple le premier c'est
const char*, et c'est maintenant le type du second que je veux savoir , puisque j'aimerais créer une fonction qui prend en premier paramètre un
int a, en deuxième
const char *chaineet en troisième un type non fixe ça peut être un
intou
charou
char *etc