From 0070661d1d4d34702c48a0827ce5513234d923bf Mon Sep 17 00:00:00 2001 From: Hugo LAMY Date: Mon, 24 Feb 2020 18:39:26 +0100 Subject: [PATCH] bug dans le width --- ft_printf | Bin 45204 -> 45036 bytes ft_printf.c | 83 +++++++++++++++++++++++++++++++++++++++++++++------- main.c | 42 +++++++++++++++++--------- 3 files changed, 101 insertions(+), 24 deletions(-) diff --git a/ft_printf b/ft_printf index 0500db63bde709609a5c81bb1cb4003a2472e7d8..7fa477eedd9f97bb8aae9331b10a5a7ea3d7922b 100755 GIT binary patch literal 45036 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 literal 45204 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 diff --git a/ft_printf.c b/ft_printf.c index c343d12..8f6de92 100644 --- a/ft_printf.c +++ b/ft_printf.c @@ -84,18 +84,81 @@ char *ft_precision(char *s, char *print, char *type) /* ** +** if i = flag_w(s) | -width is caculated +** if flag_-(&s) | -if flag '-', rm '-' and width from s +** print = ft_rpadd() | -put extra width as ' ' to right, +** else if flag_0(&s) | -if flag '0', rm '0' and width from s +** print = ft_lpadd() | -put extra width as '0' to left +** else | -if just width +** print = ft_lpadd() | put extra width as ' ' to left */ -char *ft_width(char *s, char *print, char *type) +char *ft_width(char *s, char *print) { - int i; + char *tmp; + int i; ft_putstr("[");ft_putstr(s);ft_putstr("|"); - ft_putstr("[");ft_putstr(s);ft_putstr("|"); - while (*s != '\0' && ft_strchr("%#- +'0.", *s)) - s++; - i = ft_atoi(s); - (void)type; - ft_putnbr(i);ft_putstr("]"); + tmp = s; + while (*tmp != '\0' && ft_strchr("%#- +'0.", *tmp)) + tmp++; + i = ft_atoi(tmp); ft_putnbr(i);ft_putstr("|"); + tmp[0] = '\0'; ft_putstr(s);ft_putstr("]"); + if (i > ft_strlen(print)) + { + if (!(tmp = (char *)malloc(sizeof(char) * (i + 1)))) + return (NULL); + tmp[i] = '\0'; + if (ft_strchr(s, '-')) + { + while (*print) + { + *tmp = *print; + tmp++; + print++; + i--; + } + while (i) + { + *tmp = ' '; + tmp++; + i--; + } + } + else if (ft_strchr(s, '0')) + { + i -= ft_strlen(print); + while (i) + { + *tmp = '0'; + tmp++; + i--; + } + while (*print) + { + *tmp = *print; + tmp++; + print++; + } + } + else + { + i -= ft_strlen(print); + while (i) + { + *tmp = ' '; + tmp++; + i--; + } + while (*print) + { + *tmp = *print; + tmp++; + print++; + } + } +// ft_putstr(tmp); + print = tmp; + } return (print); } @@ -129,9 +192,9 @@ char *ft_width(char *s, char *print, char *type) */ char *ft_flag_transform(char *s, char *print, char *type) -{ +{ ft_putstr("[");ft_putstr(s);ft_putstr("]"); print = ft_precision(s, print, type); - print = ft_width(s, print, type); + print = ft_width(s, print); // if ((i = flag_w(s))) // { // if (flag_-(&s)) diff --git a/main.c b/main.c index a8347a7..c768725 100644 --- a/main.c +++ b/main.c @@ -135,21 +135,35 @@ int main(int ac, char **av) ft_printf("'%.s'\n\n", "string"); printf("'%.7i'\n", -123456); ft_printf("'%.7i'\n\n", -123456); + printf("'%2i'\n", -123); + ft_printf("'%2i'\n\n", -123); + printf("'%0i'\n", -123); + ft_printf("'%0i'\n\n", -123); + printf("'%10i'\n", -123); + ft_printf("'%10i'\n\n", -123); + printf("'%*i'\n", 0,-123); + ft_printf("'%*i'\n\n", 0,-123); + printf("'%0s'\n", "string"); + ft_printf("'%0s'\n\n", "string"); + printf("'%10s'\n", "string"); + ft_printf("'%10s'\n\n", "string"); + printf("'%010s'\n", "string"); + ft_printf("'%010s'\n\n", "string"); -// #include -// ft_printf("Hi file\n"); -// int out = open("out.txt", O_WRONLY); -// int save = dup(1); -// dup2(out, 1); -// ft_printf("Ho fole\n"); -// dup2(save, 1); -// ft_printf("Ha fale\n"); -// dup2(out, 1); -// ft_printf("Hu fule\n"); -// dup2(save, 1); -// ft_printf("He fele\n"); -// close(save); -// close(out); + // #include + // ft_printf("Hi file\n"); + // int out = open("out.txt", O_WRONLY); + // int save = dup(1); + // dup2(out, 1); + // ft_printf("Ho fole\n"); + // dup2(save, 1); + // ft_printf("Ha fale\n"); + // dup2(out, 1); + // ft_printf("Hu fule\n"); + // dup2(save, 1); + // ft_printf("He fele\n"); + // close(save); + // close(out); }