preparation de itoa et uitoa
This commit is contained in:
77
ft_printf.c
77
ft_printf.c
@@ -118,12 +118,61 @@ int ft_expand_star(int nbr, char **string)
|
|||||||
** char *ft_flag_transform(char *s, char *print);
|
** char *ft_flag_transform(char *s, char *print);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
** d int
|
||||||
|
** i int
|
||||||
|
** u unsigned int
|
||||||
|
** x unsigned int
|
||||||
|
** X unsigned int
|
||||||
|
** c char
|
||||||
|
** s char*
|
||||||
|
** p unsigned int
|
||||||
|
** e double
|
||||||
|
** f double
|
||||||
|
** g double
|
||||||
|
** n
|
||||||
|
|
||||||
|
d i u x X c s p e f g n
|
||||||
|
h h h h h . . . . . . h
|
||||||
|
hh hh hh hh hh . . . . . . hh
|
||||||
|
l l l l l l l . l l l l
|
||||||
|
ll ll ll ll ll . . . . . . .
|
||||||
|
|
||||||
|
[char] [hhd, hhi, c] [int] [d i c]
|
||||||
|
[short] [hd, hi] [int]
|
||||||
|
[int] [d, i] [int]
|
||||||
|
[long] [ld, li] [long] [ld li]
|
||||||
|
[long long] [lld, lli] [long]
|
||||||
|
[unsigned char] [hhu, hhx, hhX] [unsigned int] [u x X p]
|
||||||
|
[unsigned short] [hu, hx, hX] [unsigned int]
|
||||||
|
[unsigned int] [u, x, X, p] [unsigned int]
|
||||||
|
[unsigned long] [lu, lx, lX] [unsigned long] [lu lx lX s]
|
||||||
|
[unsigned long long][llu, llx, llX] [unsigned long]
|
||||||
|
[char *] [s, hhn] [unsigned long]
|
||||||
|
[double] [e, le, f, lf, g, lg]
|
||||||
|
[wint_t] [lc]
|
||||||
|
[wchar_t] [ls]
|
||||||
|
[short *] [hn]
|
||||||
|
[int *] [n]
|
||||||
|
[long *] [ln]
|
||||||
|
[long long *] [lln]
|
||||||
|
|
||||||
|
faire un itoa qui fonctionne pour les long int
|
||||||
|
faire un uitoa qui fonctionne pour les unsigned long int
|
||||||
|
comme ca [d i c] et [ld li] sont traites pareil, et
|
||||||
|
[u x X p] et [lu lx lX s] aussi
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
char *ft_convert(va_list ap, char *type)
|
char *ft_convert(va_list ap, char *type)
|
||||||
{
|
{
|
||||||
long int i;
|
char *print;
|
||||||
|
|
||||||
if (!ft_strchr(type, 'e') || !ft_strchr(type, 'f') || !ft_strchr(type, 'g') || !ft_strchr(type, 'n'))
|
if (ft_strchr(type, 'h') || ft_strchr(type, 'l'))
|
||||||
i = va_arg(ap, long int);
|
return (NULL);
|
||||||
|
if (ft_strchr("diuxXcspefgn", type[0]))
|
||||||
|
print = ft_itoa((int)va_arg(ap, int));
|
||||||
|
printf("%s\n", print);
|
||||||
return (NULL);
|
return (NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -217,7 +266,7 @@ int ft_printf_test(char *string, ...)
|
|||||||
if (*string == 'i')
|
if (*string == 'i')
|
||||||
printf("%i", (int)va_arg(ap, long int));
|
printf("%i", (int)va_arg(ap, long int));
|
||||||
if (*string == 'u')
|
if (*string == 'u')
|
||||||
printf("%u", (unsigned int)va_arg(ap, long int));
|
printf("%u", (unsigned int)va_arg(ap, int));
|
||||||
if (*string == 'x')
|
if (*string == 'x')
|
||||||
printf("%x", (unsigned int)va_arg(ap, long int));
|
printf("%x", (unsigned int)va_arg(ap, long int));
|
||||||
if (*string == 'X')
|
if (*string == 'X')
|
||||||
@@ -264,14 +313,16 @@ int main(int ac, char **av)
|
|||||||
long int i3 = 9223372036854775807;
|
long int i3 = 9223372036854775807;
|
||||||
long int i4 = -9223372036854775807;
|
long int i4 = -9223372036854775807;
|
||||||
unsigned int i5 = 4294967295;
|
unsigned int i5 = 4294967295;
|
||||||
unsigned long int i6 = 18446744073709551615;
|
// long unsigned int i6 = 18446744073709551615;
|
||||||
|
long unsigned int i6 = 8446744073709551615;
|
||||||
|
|
||||||
if (ac == 1)
|
if (ac == 1)
|
||||||
{
|
{
|
||||||
printf("%s : %d : %i : %u : %x : %X : %c : %s : %e : %f : %g\n", str, d, i, u, x, X, c, s, e, f, g);
|
// 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);
|
// 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);
|
// printf("%s : %i : %i : %li : %li : %u : %lu\n", str2, i1, i2, i3, i4, i5, i6);
|
||||||
ft_printf_test(str2, i1, i2, i3, i4, i5, i6);
|
ft_printf("%i", -23);
|
||||||
|
// ft_printf_test(str2, i1, i2, i3, i4, i5, i6);
|
||||||
}
|
}
|
||||||
if (ac == 2)
|
if (ac == 2)
|
||||||
{
|
{
|
||||||
@@ -376,10 +427,10 @@ long long 8bytes 64bits
|
|||||||
4294967295 -2147483648 - +2147483647 02 [int] [d, i] [int]
|
4294967295 -2147483648 - +2147483647 02 [int] [d, i] [int]
|
||||||
18446744073709551615 -9223372036854775808 - +9223372036854775807 04 [long] [ld, li] [long] [d(l ,ll), i(l, ll)]
|
18446744073709551615 -9223372036854775808 - +9223372036854775807 04 [long] [ld, li] [long] [d(l ,ll), i(l, ll)]
|
||||||
18446744073709551615 -9223372036854775808 - +9223372036854775807 04 [long long] [lld, lli] [long]
|
18446744073709551615 -9223372036854775808 - +9223372036854775807 04 [long long] [lld, lli] [long]
|
||||||
256 0 - +255 05 [unsigned char] [hhu, hhx, hhX] [unsigned long] [s, u( , h, hh, l, ll), x( , h, hh, l, ll), X( , h, hh, l, ll), p]
|
256 0 - +255 05 [unsigned char] [hhu, hhx, hhX] [unsigned int] [u( , h, hh), x( , h, hh), X( , h, hh), p]
|
||||||
65536 0 - +65536 06 [unsigned short] [hu, hx, hX] [unsigned long]
|
65536 0 - +65536 06 [unsigned short] [hu, hx, hX] [unsigned int]
|
||||||
4294967296 0 - +4294967296 07 [unsigned int] [u, x, X, p] [unsigned long]
|
4294967296 0 - +4294967296 07 [unsigned int] [u, x, X, p] [unsigned int]
|
||||||
18446744073709551616 0 - +18446744073709551616 09 [unsigned long] [lu, lx, lX] [unsigned long]
|
18446744073709551616 0 - +18446744073709551616 09 [unsigned long] [lu, lx, lX] [unsigned long] [s, u(l, ll), x(l, ll), X(l, ll)]
|
||||||
18446744073709551616 0 - +18446744073709551616 09 [unsigned long long] [llu, llx, llX] [unsigned long]
|
18446744073709551616 0 - +18446744073709551616 09 [unsigned long long] [llu, llx, llX] [unsigned long]
|
||||||
18446744073709551616 0 - +18446744073709551616 10 [char *] [s, hhn] [unsigned long]
|
18446744073709551616 0 - +18446744073709551616 10 [char *] [s, hhn] [unsigned long]
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
# include <stdarg.h>
|
# include <stdarg.h>
|
||||||
# include "libft.c/libft.h"
|
# include "libft.c/libft.h"
|
||||||
|
|
||||||
# include <libc.h>
|
# include <stdio.h>
|
||||||
|
|
||||||
int ft_printf(char *string, ...);
|
int ft_printf(char *string, ...);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user