Le deuxieme parametre de printf
Fermé
doumbia.danse
Messages postés
46
Date d'inscription
jeudi 3 juillet 2014
Statut
Membre
Dernière intervention
16 mars 2015
-
15 nov. 2014 à 01:44
doumbia.danse Messages postés 46 Date d'inscription jeudi 3 juillet 2014 Statut Membre Dernière intervention 16 mars 2015 - 15 nov. 2014 à 21:55
doumbia.danse Messages postés 46 Date d'inscription jeudi 3 juillet 2014 Statut Membre Dernière intervention 16 mars 2015 - 15 nov. 2014 à 21:55
A voir également:
- Le deuxieme parametre de printf
- Netflix paramètre compte - Guide
- Deuxieme ecran pc - Guide
- Remettre parametre usine pc - Guide
- Utiliser tablette comme deuxieme ecran - Guide
- Changer parametre dns - Guide
3 réponses
sambia39
Messages postés
610
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
9 février 2023
49
Modifié par sambia39 le 15/11/2014 à 20:07
Modifié par sambia39 le 15/11/2014 à 20:07
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.
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
15 nov. 2014 à 04:39
15 nov. 2014 à 04:39
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");
doumbia.danse
Messages postés
46
Date d'inscription
jeudi 3 juillet 2014
Statut
Membre
Dernière intervention
16 mars 2015
15 nov. 2014 à 13:01
15 nov. 2014 à 13:01
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
15 nov. 2014 à 21:55