resolue probleme signe moins avec flag zero mais erreur norme

This commit is contained in:
Hugo LAMY
2020-03-09 15:06:54 +01:00
parent 12d30893f8
commit c55004d845
4 changed files with 35 additions and 5 deletions

24
main.c
View File

@@ -301,7 +301,26 @@ int main(int ac, char **av)
// PRINT("%.0i", 000);
// PRINT("%.0X", 0);
// PRINT("%08i", 33333);
PRINT("%.i", 0);
// PRINT("%.i", 0);
PRINT("%+d", 12);
PRINT("%+d", -12);
PRINT("%+i", 12);
PRINT("%+i", -12);
PRINT("%+05i", -12);
PRINT("%05i", -12);
PRINT("%07.5i", -12);
// PRINT("%+u", 12);
// PRINT("%+u", -12);
// PRINT("%+x", 12);
// PRINT("%+x", -12);
// PRINT("%+X", 12);
// PRINT("%+X", -12);
// PRINT("%+c", 12);
// PRINT("%+c", -12);
// PRINT("%+s", "12");
// PRINT("%+s", "-12");
// PRINT("%+p", 12);
// PRINT("%+p", -12);
}
/* ////////////////////////////////////////////////////////////////// */
@@ -349,6 +368,7 @@ int main(int ac, char **av)
PRINT("%03i", 1);
PRINT("%03u", 1);
PRINT("%03x", 1);
PRINT("%05i", -12);
PRINT("%03%");
PRINT("%0%");
}
@@ -384,6 +404,8 @@ int main(int ac, char **av)
PRINT("%6%");
PRINT("%16c", 'a');
PRINT("%16c", (char)97);
PRINT("%5i", -12);
PRINT("%05i", -12);
}
if (ac == 2 || !strcmp(av[2], "precision"))

View File

@@ -1 +1 @@
33333
-00012

View File

@@ -1 +1 @@
33333
-00012

View File

@@ -94,6 +94,7 @@ char *ft_precision(char *s, char *print, char *type)
char *width_flags(char *print, char *s, int width, int zero)
{
char *tmp;
char *minus;
char c;
int len;
@@ -107,9 +108,16 @@ char *width_flags(char *print, char *s, int width, int zero)
}
else
{
c = (ft_strchr(s, '0')) ? '0' : ' ';
ft_memset(tmp, c, width - len);
// c = (ft_strchr(s, '0')) ? '0' : ' ';
// ft_memset(tmp, c, width - len);
ft_memset(tmp, (ft_strchr(s, '0')) ? '0' : ' ', width - len);
ft_memmove(ft_strchr(tmp, '\0') + zero, print, ft_strlen(print));
// if (c == '0' && (minus = ft_strchr(tmp, '-')))
if (ft_strchr(s, '0') && (minus = ft_strchr(tmp, '-')))
{
minus[0] = '0';
tmp[0] = '-';
}
}
free(print);
return (tmp);