From f470ad061c6347e0e085c9fc66ff3e7915a9af9c Mon Sep 17 00:00:00 2001 From: Hugo LAMY Date: Mon, 24 Feb 2020 17:59:14 +0100 Subject: [PATCH] fonction pour alterner la sortie standard avec un fichier --- ft_printf | Bin 45036 -> 45204 bytes ft_printf.c | 5 +---- main.c | 16 ++++++++++++++ out.txt | 2 ++ test.c | 60 ---------------------------------------------------- 5 files changed, 19 insertions(+), 64 deletions(-) create mode 100644 out.txt delete mode 100644 test.c diff --git a/ft_printf b/ft_printf index 32548bc93e772414a8cc8752bad901df7f37003a..0500db63bde709609a5c81bb1cb4003a2472e7d8 100755 GIT binary patch literal 45204 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 literal 45036 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 diff --git a/ft_printf.c b/ft_printf.c index 22b0dbc..c343d12 100644 --- a/ft_printf.c +++ b/ft_printf.c @@ -91,9 +91,8 @@ char *ft_width(char *s, char *print, char *type) int i; ft_putstr("[");ft_putstr(s);ft_putstr("|"); - while (ft_strchr("%#- +'0.", *s)) + while (*s != '\0' && ft_strchr("%#- +'0.", *s)) s++; - ft_putstr(s);ft_putstr("|"); i = ft_atoi(s); (void)type; ft_putnbr(i);ft_putstr("]"); @@ -131,9 +130,7 @@ char *ft_width(char *s, char *print, char *type) char *ft_flag_transform(char *s, char *print, char *type) { - ft_putstr(s);ft_putstr("|"); print = ft_precision(s, print, type); - ft_putstr(s);ft_putstr("|"); print = ft_width(s, print, type); // if ((i = flag_w(s))) // { diff --git a/main.c b/main.c index 365b1d7..a8347a7 100644 --- a/main.c +++ b/main.c @@ -135,6 +135,22 @@ int main(int ac, char **av) ft_printf("'%.s'\n\n", "string"); printf("'%.7i'\n", -123456); ft_printf("'%.7i'\n\n", -123456); + +// #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); + } /* ////////////////////////////////////////////////////////////////// */ diff --git a/out.txt b/out.txt new file mode 100644 index 0000000..4444a8e --- /dev/null +++ b/out.txt @@ -0,0 +1,2 @@ +Ho fole +Hu fule diff --git a/test.c b/test.c deleted file mode 100644 index bf803dd..0000000 --- a/test.c +++ /dev/null @@ -1,60 +0,0 @@ -#include - -//int ft_printf(char *string, ...) -//{ -// va_list ap; -// int d; -// char c; -// char *s; -// -// va_start(ap, string); -// while (*string != '\0') -// { -// if (*string == 's') -// s = va_arg(ap, char *); -// if (*string == 'd') -// d = va_arg(ap, int); -// if (*string == 'c') -// c = va_arg(ap, int); -// string++; -// } -// va_end(ap); -// return (0); -//} - -char *ft_strchr(const char *s, int c) -{ - int i; - int j; - - i = 0; - j = -1; - while (s[i]) - i++; - while (++j < i + 1) - if (s[j] == c) - return ((char *)s + j); - return (NULL); -} - -int main(void) -{ - char *s = "csd"; - char *str = "bravo"; - char c = 'p'; - int i = 9; - -// ft_printf(s, c, str, i); - char *test1; - char *test2; - test1 = "truc%muche"; - test1 = strdup(test1); - test2 = ft_strchr(test1,'%'); - if (test2) - test2[0] = '\0'; - printf("%s", test2); - test1[6] = 'g'; - if (test2) - printf(" - %s - %i - %s\n", test2 + 1, test2[0], test1); - return (0); -}