From d2edaa38d8749a8c53d8dfcf44bacea17fb0f198 Mon Sep 17 00:00:00 2001 From: Hugo LAMY Date: Tue, 25 Feb 2020 17:46:57 +0100 Subject: [PATCH] affichage des tests macro ok --- ft_printf | Bin 45164 -> 49260 bytes main.c | 114 ++++++++++++++++++++---------------------------------- 2 files changed, 43 insertions(+), 71 deletions(-) diff --git a/ft_printf b/ft_printf index c17ebe29e7b5791f62ac628ef6eef7103a77de6d..2b955139e672c79862d3838aa1e15b05bcdda000 100755 GIT binary patch literal 49260 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 Ay#N3J literal 45164 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 diff --git a/main.c b/main.c index d2f5dee..6747513 100644 --- a/main.c +++ b/main.c @@ -2,6 +2,17 @@ #include // for printf #include + +// macro to print : +// first the string, +// then the result of real printf, +// then the result of ft_printf, +// and finally redirect the output into a file to compare +#define PRINT(string, args...) printf("(%s, %s)", #string, #args); \ + printf("%*s", (int)(40 - ft_strlen(#string) - ft_strlen(#args)), ": "); \ + printf("'" string "'\n", args); \ + ft_printf("%45s" string "'\n\n", ": '", args); + int ft_printf_test(char *string, ...) { va_list ap; @@ -86,77 +97,38 @@ int main(int ac, char **av) if (ac == 2 && !strcmp(av[1], "test")) { - -//#define PRINT(string, args...) printf("(%s, %s)\n", #string, #args); \ -// printf("'" string "'\n", args); \ -// ft_printf("'" string "'\n", args); -// PRINT("%*i", 5, 123) - - printf("sdf\n"); - ft_printf("sdf\n\n"); - printf("'%i'\n", 23); - ft_printf("'%i'\n\n", 23); - long int k = -23; - printf("'%li'\n", k); - ft_printf("'%li'\n\n", k); - printf("'%i'\n", -32); - ft_printf("'%i'\n\n", -32); - printf("'%li'\n", 9223372036854775807); - ft_printf("'%li'\n\n", 9223372036854775807); - printf("'%c'\n", 'f'); - ft_printf("'%c'\n\n", 'f'); - printf("'%s'\n", "sdffhk"); - ft_printf("'%s'\n\n", "sdffhk"); - printf("'%u'\n", 1221879); - ft_printf("'%u'\n\n", 1221879); - printf("'%x'\n", 3287); - ft_printf("'%x'\n\n", 3287); - printf("'%lX'\n", 9223372036854775807); - ft_printf("'%lX'\n\n", 9223372036854775807); - printf("'%p'\n", "dfgdf"); - ft_printf("'%p'\n\n", "dfgdf"); - printf("'%.i'\n", 121); - ft_printf("'%.i'\n\n", 121); - printf("'%.2i'\n", 122); - ft_printf("'%.2i'\n\n", 122); - printf("'%.25i'\n", 123); - ft_printf("'%.25i'\n\n", 123); - printf("'%0.6i'\n", 124); - ft_printf("'%0.6i'\n\n", 124); - printf("'%-032.6i'\n", 125); - ft_printf("'%-032.6i'\n\n", 125); - printf("'%0-032.6i'\n", 126); - ft_printf("'%0-032.6i'\n\n", 126); - printf("'%0-0.6i'\n", 127); - ft_printf("'%0-0.6i'\n\n", 127); - printf("'%s'\n", "string"); - ft_printf("'%s'\n\n", "string"); - printf("'%.7s'\n", "strong"); - ft_printf("'%.7s'\n\n", "strong"); - printf("'%.2s'\n", "strung"); - ft_printf("'%.2s'\n\n", "strung"); - printf("'%.0s'\n", "strang"); - ft_printf("'%.0s'\n\n", "strang"); - printf("'%.s'\n", "streng"); - ft_printf("'%.s'\n\n", "streng"); - printf("'%.7i'\n", -123456); - ft_printf("'%.7i'\n\n", -123456); - printf("'%2i'\n", -128); - ft_printf("'%2i'\n\n", -128); - printf("'%0i'\n", -129); - ft_printf("'%0i'\n\n", -129); - printf("'%10i'\n", -130); - ft_printf("'%10i'\n\n", -130); - printf("'%*i'\n", 0,-131); - ft_printf("'%*i'\n\n", 0,-131); - printf("'%0s'\n", "stryng"); - ft_printf("'%0s'\n\n", "stryng"); - printf("'%10s'\n", "strxng"); - ft_printf("'%10s'\n\n", "strxng"); - printf("'%010s'\n", "strzng"); - ft_printf("'%010s'\n\n", "strzng"); - printf("'%010s'" "__TEST__\n", "strzng"); - ft_printf("'%010s'" "__TEST__\n\n", "strzng"); + long int k = -23; + PRINT("%i", 23); + PRINT("%li", k); + PRINT("%i", -32); + PRINT("%li", 9223372036854775807); + PRINT("%c", 'f'); + PRINT("%s", "sdffhk"); + PRINT("%u", 1221879); + PRINT("%x", 3287); + PRINT("%lX", 9223372036854775807); + PRINT("%p", "dfgdf"); + PRINT("%.i", 121); + PRINT("%.2i", 122); + PRINT("%.25i", 123); + PRINT("%0.6i", 124); + PRINT("%-032.6i", 125); + PRINT("%0-032.6i", 126); + PRINT("%0-0.6i", 127); + PRINT("%s", "string"); + PRINT("%.7s", "strong"); + PRINT("%.2s", "strung"); + PRINT("%.0s", "strang"); + PRINT("%.s", "streng"); + PRINT("%.7i", -123456); + PRINT("%2i", -128); + PRINT("%0i", -129); + PRINT("%10i", -130); + PRINT("%*i", 0,-131); + PRINT("%0s", "stryng"); + PRINT("%10s", "strxng"); + PRINT("%010s", "strzng"); + PRINT("%010s" "__TEST__", "strzng"); // #include // ft_printf("Hi file\n");