Printf FLags
Résolu
Bonjour tous le monde,
mon printf affiche sans problème ma chaine de caractère et quelque soit le flags que j'entre, seule problème c'est qu'il m'affiche en plus le flag et le modulo correspondant !
en sachant que je voudrais qu'il REMPLACE mon module+flag par la chaîne de caractère que je lui donne.
je serai très reconnaissant à celui qui trouvera mon erreur.
EXEMPLE:
mon printf affiche sans problème ma chaine de caractère et quelque soit le flags que j'entre, seule problème c'est qu'il m'affiche en plus le flag et le modulo correspondant !
en sachant que je voudrais qu'il REMPLACE mon module+flag par la chaîne de caractère que je lui donne.
je serai très reconnaissant à celui qui trouvera mon erreur.
EXEMPLE:
char *s = "String";
my_printf("Ma chaine %s, s);
me donne:
Ma chaine String%s
void check_flags(char c, va_list ap) //permet de checker a quel flag correspond
{
int i;
i = 0;
while (tab[i].flag != '\0')
{
if (tab[i].flag == c)
tab[i].print(ap);
i++;
}
}
int my_printf(const char *format, ...)
{
va_list ap;
int i;
i = 0;
va_start(ap, format);
while (format[i] != '\0')
{
if (format[i] == '%' && format[i+1] != '%')
{
check_flags(format[i + 1], ap);
//i++;
my_putchar(format[i]);
}
else
my_putchar(format[i]);
i++;
}