diff --git a/ft_printf b/ft_printf index df6c826..7dd03cf 100755 Binary files a/ft_printf and b/ft_printf differ diff --git a/ft_printf.c b/ft_printf.c index ca9ecbc..c775248 100644 --- a/ft_printf.c +++ b/ft_printf.c @@ -122,8 +122,18 @@ char *ft_convert(va_list ap, char *type) else if (ft_strchr(type, 's')) print = strdup((char *)va_arg(ap, long int)); else if (ft_strchrset(type, "di")) + print = ft_itoa((long int)va_arg(ap, long int)); + else if (ft_strchr(type, 'u')) + print = ft_utoa(va_arg(ap, unsigned long int)); + else if (ft_strchrset(type, "xX")) + { print = ft_itoa(va_arg(ap, long int)); - else if (ft_strchrset(type, "uxXp")) + if (ft_strchr(type, 'x')) + print = ft_convertbase(print, "0123456789", "0123456789abcdef"); + if (ft_strchr(type, 'X')) + print = ft_convertbase(print, "0123456789", "0123456789ABCDEF"); + } + else if (ft_strchr(type, 'p')) print = ft_utoa(va_arg(ap, unsigned long int)); else if (ft_strchrset(type, "efgn")) return (NULL); @@ -176,10 +186,7 @@ int ft_printf(char *string, ...) while ((s = next_word(&string)) != NULL) { if ((type = specifier(s)) == NULL) - { length += ft_put_word(s); - write(1, "|", 1); - } else { while (ft_strchr(s, '*')) @@ -187,7 +194,6 @@ int ft_printf(char *string, ...) return (-1); print = ft_convert(ap, type); ft_putstr(print); - write(1, "|", 1); // printf("= %s | %s\n",s,print); // print = ft_flag_transform(s, print); // length += ft_put_word(print); @@ -314,34 +320,10 @@ int main(int ac, char **av) // printf("%s : %d : %i : %u : %x : %X : %c : %s : %e : %f : %g\n", str, d, i, u, x, X, c, s, e, f, g); // ft_printf_test(str, d, i, u, x, X, c, s, e, f, g); // printf("%s : %i : %i : %li : %li : %u : %lu\n", str2, i1, i2, i3, i4, i5, i6); - ft_printf("%i", -23); + ft_printf("sdf\n\n"); + ft_printf("%i\n\n", -23); // ft_printf_test(str2, i1, i2, i3, i4, i5, i6); } - if (ac == 2) - { - printf("(\"%s\")\n", av[1]); - ft_printf(av[1]); - } - if (ac == 3) - { - printf("(\"%s\",%s)\n", av[1], av[2]); - ft_printf(av[1],av[2]); - } - if (ac == 4) - { - printf("(\"%s\",%i,%i)\n", av[1], atoi(av[2]), atoi(av[3])); - ft_printf(av[1],atoi(av[2]),atoi(av[3])); - } - if (ac == 5) - { - printf("(\"%s\",%s,%s,%s)\n", av[1], av[2], av[3], av[4]); - ft_printf(av[1],av[2],av[3],av[4]); - } - if (ac == 6) - { - printf("(\"%s\",%s,%s,%s,%s)\n", av[1], av[2], av[3], av[4], av[5]); - ft_printf(av[1],av[2],av[3],av[4],av[5]); - } return (0); }