|
|
@@ -0,0 +1,237 @@
|
|
|
+
|
|
|
+#include <math.h>
|
|
|
+#include <errno.h>
|
|
|
+#include <stdio.h>
|
|
|
+#include <limits.h>
|
|
|
+#include <stdlib.h>
|
|
|
+#include "ft_printf.h"
|
|
|
+
|
|
|
+#define N__PRINTF(str) printf("%d: P>"str" -> %n", __LINE__, &tmp); printf("%d\n", tmp);
|
|
|
+#define N_fPRINTF(str) ft_printf("%d: M>"str" -> %n", __LINE__, &tmp); ft_printf("%d\n", tmp); ft_aprintf(&buffer, "%d: A>"str, __LINE__); ft_printf("%s\n\n", buffer); if (buffer) free(buffer); buffer = NULL;
|
|
|
+#define __PRINTF(str, args...) printf("%d: P>"str" -> %n", __LINE__, args, &tmp); printf("%d\n", tmp);
|
|
|
+#define _fPRINTF(str, args...) ft_printf("%d: M>"str" -> %n", __LINE__, args, &tmp); ft_printf("%d\n", tmp); ft_aprintf(&buffer, "%d: A>"str, __LINE__, args); ft_printf("%s\n\n", buffer); if (buffer) free(buffer); buffer = NULL;
|
|
|
+
|
|
|
+#define TEST_FLOATS(LETTER) \
|
|
|
+ __PRINTF("number %+"LETTER, 42.12345);\
|
|
|
+ _fPRINTF("number %+"LETTER, 42.12345);\
|
|
|
+ __PRINTF("number % "LETTER, 44.12345);\
|
|
|
+ _fPRINTF("number % "LETTER, 44.12345);\
|
|
|
+ __PRINTF("number % 4"LETTER, 45.12345);\
|
|
|
+ _fPRINTF("number % 4"LETTER, 45.12345);\
|
|
|
+ __PRINTF("number %04"LETTER, 46.12345);\
|
|
|
+ _fPRINTF("number %04"LETTER, 46.12345);\
|
|
|
+ __PRINTF("number % 04"LETTER, 47.12345);\
|
|
|
+ _fPRINTF("number % 04"LETTER, 47.12345);\
|
|
|
+ __PRINTF("number %-+"LETTER, 48.12345);\
|
|
|
+ _fPRINTF("number %-+"LETTER, 48.12345);\
|
|
|
+ __PRINTF("number %-+"LETTER, 49.12345);\
|
|
|
+ _fPRINTF("number %-+"LETTER, 49.12345);\
|
|
|
+ __PRINTF("number %- "LETTER, 50.12345);\
|
|
|
+ _fPRINTF("number %- "LETTER, 50.12345);\
|
|
|
+ __PRINTF("number %- 4"LETTER"|", 51.12345);\
|
|
|
+ _fPRINTF("number %- 4"LETTER"|", 51.12345);\
|
|
|
+ __PRINTF("number %+"LETTER, -42.12345);\
|
|
|
+ _fPRINTF("number %+"LETTER, -42.12345);\
|
|
|
+ __PRINTF("number %+"LETTER, -43.12345);\
|
|
|
+ _fPRINTF("number %+"LETTER, -43.12345);\
|
|
|
+ __PRINTF("number % "LETTER, -44.12345);\
|
|
|
+ _fPRINTF("number % "LETTER, -44.12345);\
|
|
|
+ __PRINTF("number % 4"LETTER, -45.12345);\
|
|
|
+ _fPRINTF("number % 4"LETTER, -45.12345);\
|
|
|
+ __PRINTF("number %04"LETTER, -46.12345);\
|
|
|
+ _fPRINTF("number %04"LETTER, -46.12345);\
|
|
|
+ __PRINTF("number % 04"LETTER, -47.12345);\
|
|
|
+ _fPRINTF("number % 04"LETTER, -47.12345);\
|
|
|
+ __PRINTF("number %-+"LETTER, -48.12345);\
|
|
|
+ _fPRINTF("number %-+"LETTER, -48.12345);\
|
|
|
+ __PRINTF("number %-+"LETTER, -49.12345);\
|
|
|
+ _fPRINTF("number %-+"LETTER, -49.12345);\
|
|
|
+ __PRINTF("number %- "LETTER, -50.12345);\
|
|
|
+ _fPRINTF("number %- "LETTER, -50.12345);\
|
|
|
+ __PRINTF("number %- 4"LETTER"|", -51.12345);\
|
|
|
+ _fPRINTF("number %- 4"LETTER"|", -51.12345);\
|
|
|
+ __PRINTF("number %+.3"LETTER, 42.12345);\
|
|
|
+ _fPRINTF("number %+.3"LETTER, 42.12345);\
|
|
|
+ __PRINTF("number % .3"LETTER, 44.12345);\
|
|
|
+ _fPRINTF("number % .3"LETTER, 44.12345);\
|
|
|
+ __PRINTF("number % 4.3"LETTER, 45.12345);\
|
|
|
+ _fPRINTF("number % 4.3"LETTER, 45.12345);\
|
|
|
+ __PRINTF("number %04.3"LETTER, 46.12345);\
|
|
|
+ _fPRINTF("number %04.3"LETTER, 46.12345);\
|
|
|
+ __PRINTF("number % 04.3"LETTER, 47.12345);\
|
|
|
+ _fPRINTF("number % 04.3"LETTER, 47.12345);\
|
|
|
+ __PRINTF("number %-+.3"LETTER, 48.12345);\
|
|
|
+ _fPRINTF("number %-+.3"LETTER, 48.12345);\
|
|
|
+ __PRINTF("number %-+.3"LETTER, 49.12345);\
|
|
|
+ _fPRINTF("number %-+.3"LETTER, 49.12345);\
|
|
|
+ __PRINTF("number %- .3"LETTER, 50.12345);\
|
|
|
+ _fPRINTF("number %- .3"LETTER, 50.12345);\
|
|
|
+ __PRINTF("number %- 4"LETTER"|", 51.12345);\
|
|
|
+ _fPRINTF("number %- 4"LETTER"|", 51.12345);\
|
|
|
+ __PRINTF("number %+.3"LETTER, -42.12345);\
|
|
|
+ _fPRINTF("number %+.3"LETTER, -42.12345);\
|
|
|
+ __PRINTF("number %+.3"LETTER, -43.12345);\
|
|
|
+ _fPRINTF("number %+.3"LETTER, -43.12345);\
|
|
|
+ __PRINTF("number % .3"LETTER, -44.12345);\
|
|
|
+ _fPRINTF("number % .3"LETTER, -44.12345);\
|
|
|
+ __PRINTF("number % 4.3"LETTER, -45.12345);\
|
|
|
+ _fPRINTF("number % 4.3"LETTER, -45.12345);\
|
|
|
+ __PRINTF("number %04.3"LETTER, -46.12345);\
|
|
|
+ _fPRINTF("number %04.3"LETTER, -46.12345);\
|
|
|
+ __PRINTF("number % 04.3"LETTER, -47.12345);\
|
|
|
+ _fPRINTF("number % 04.3"LETTER, -47.12345);\
|
|
|
+ __PRINTF("number %-+.3"LETTER, -48.12345);\
|
|
|
+ _fPRINTF("number %-+.3"LETTER, -48.12345);\
|
|
|
+ __PRINTF("number %-+.3"LETTER, -49.12345);\
|
|
|
+ _fPRINTF("number %-+.3"LETTER, -49.12345);\
|
|
|
+ __PRINTF("number %- .3"LETTER, -50.12345);\
|
|
|
+ _fPRINTF("number %- .3"LETTER, -50.12345);\
|
|
|
+ __PRINTF("number %- 4"LETTER"|", -51.12345);\
|
|
|
+ _fPRINTF("number %- 4"LETTER"|", -51.12345);\
|
|
|
+ __PRINTF("number %.1"LETTER"|", -51.99);\
|
|
|
+ _fPRINTF("number %.1"LETTER"|", -51.99);\
|
|
|
+ __PRINTF("number %"LETTER"|", NAN);\
|
|
|
+ _fPRINTF("number %"LETTER"|", NAN);\
|
|
|
+ __PRINTF("number %"LETTER"|", INFINITY);\
|
|
|
+ _fPRINTF("number %"LETTER"|", INFINITY);\
|
|
|
+ __PRINTF("number %"LETTER"|", -NAN);\
|
|
|
+ _fPRINTF("number %"LETTER"|", -NAN);\
|
|
|
+ __PRINTF("number %"LETTER"|", -INFINITY);\
|
|
|
+ _fPRINTF("number %"LETTER"|", -INFINITY);
|
|
|
+
|
|
|
+
|
|
|
+int main()
|
|
|
+{
|
|
|
+ int tmp =0;
|
|
|
+ char* buffer = NULL;
|
|
|
+
|
|
|
+ N__PRINTF("test");
|
|
|
+ N_fPRINTF("test");
|
|
|
+ N__PRINTF("te%%st");
|
|
|
+ N_fPRINTF("te%%st");
|
|
|
+ N__PRINTF("te%%%%st");
|
|
|
+ N_fPRINTF("te%%%%st");
|
|
|
+
|
|
|
+ __PRINTF("number %+d", 42);
|
|
|
+ _fPRINTF("number %+d", 42);
|
|
|
+ __PRINTF("number %+d", 43);
|
|
|
+ _fPRINTF("number %+d", 43);
|
|
|
+ __PRINTF("number % d", 44);
|
|
|
+ _fPRINTF("number % d", 44);
|
|
|
+ __PRINTF("number % 4d", 45);
|
|
|
+ _fPRINTF("number % 4d", 45);
|
|
|
+ __PRINTF("number %04d", 46);
|
|
|
+ _fPRINTF("number %04d", 46);
|
|
|
+ __PRINTF("number % 04d", 47);
|
|
|
+ _fPRINTF("number % 04d", 47);
|
|
|
+ __PRINTF("number %-+d", 48);
|
|
|
+ _fPRINTF("number %-+d", 48);
|
|
|
+ __PRINTF("number %-+d", 49);
|
|
|
+ _fPRINTF("number %-+d", 49);
|
|
|
+ __PRINTF("number %- d", 50);
|
|
|
+ _fPRINTF("number %- d", 50);
|
|
|
+ __PRINTF("number %- 4d|", 51);
|
|
|
+ _fPRINTF("number %- 4d|", 51);
|
|
|
+ __PRINTF("number %+d", -42);
|
|
|
+ _fPRINTF("number %+d", -42);
|
|
|
+ __PRINTF("number %+d", -43);
|
|
|
+ _fPRINTF("number %+d", -43);
|
|
|
+ __PRINTF("number % d", -44);
|
|
|
+ _fPRINTF("number % d", -44);
|
|
|
+ __PRINTF("number % 4d", -45);
|
|
|
+ _fPRINTF("number % 4d", -45);
|
|
|
+ __PRINTF("number %04d", -46);
|
|
|
+ _fPRINTF("number %04d", -46);
|
|
|
+ __PRINTF("number % 04d", -47);
|
|
|
+ _fPRINTF("number % 04d", -47);
|
|
|
+ __PRINTF("number %-+d", -48);
|
|
|
+ _fPRINTF("number %-+d", -48);
|
|
|
+ __PRINTF("number %-+d", -49);
|
|
|
+ _fPRINTF("number %-+d", -49);
|
|
|
+ __PRINTF("number %- d", -50);
|
|
|
+ _fPRINTF("number %- d", -50);
|
|
|
+ __PRINTF("number %- 4d|", -51);
|
|
|
+ _fPRINTF("number %- 4d|", -51);
|
|
|
+ __PRINTF("number %+d", 0);
|
|
|
+ _fPRINTF("number %+d", 0);
|
|
|
+ __PRINTF("number %+d", 0);
|
|
|
+ _fPRINTF("number %+d", 0);
|
|
|
+ __PRINTF("number % d", 0);
|
|
|
+ _fPRINTF("number % d", 0);
|
|
|
+ __PRINTF("number % 4d", 0);
|
|
|
+ _fPRINTF("number % 4d", 0);
|
|
|
+ __PRINTF("number %04d", 0);
|
|
|
+ _fPRINTF("number %04d", 0);
|
|
|
+ __PRINTF("number % 04d", 0);
|
|
|
+ _fPRINTF("number % 04d", 0);
|
|
|
+ __PRINTF("number %-+d", 0);
|
|
|
+ _fPRINTF("number %-+d", 0);
|
|
|
+ __PRINTF("number %-+d", 0);
|
|
|
+ _fPRINTF("number %-+d", 0);
|
|
|
+ __PRINTF("number %- d", 0);
|
|
|
+ _fPRINTF("number %- d", 0);
|
|
|
+ __PRINTF("number %- 4d|", 0);
|
|
|
+ _fPRINTF("number %- 4d|", 0);
|
|
|
+ __PRINTF("number %- 4d|", INT_MIN);
|
|
|
+ _fPRINTF("number %- 4d|", INT_MIN);
|
|
|
+
|
|
|
+ __PRINTF("number %o", 0);
|
|
|
+ _fPRINTF("number %o", 0);
|
|
|
+ __PRINTF("number %u", 0);
|
|
|
+ _fPRINTF("number %u", 0);
|
|
|
+ __PRINTF("number %x", 0);
|
|
|
+ _fPRINTF("number %x", 0);
|
|
|
+ __PRINTF("number %12o", UINT_MAX);
|
|
|
+ _fPRINTF("number %12o", UINT_MAX);
|
|
|
+ __PRINTF("number %12u", UINT_MAX);
|
|
|
+ _fPRINTF("number %12u", UINT_MAX);
|
|
|
+ __PRINTF("number %12X", UINT_MAX);
|
|
|
+ _fPRINTF("number %12X", UINT_MAX);
|
|
|
+ __PRINTF("number %12x", UINT_MAX);
|
|
|
+ _fPRINTF("number %12x", UINT_MAX);
|
|
|
+ __PRINTF("number %#12o", UINT_MAX);
|
|
|
+ _fPRINTF("number %#12o", UINT_MAX);
|
|
|
+ __PRINTF("number %#12X", UINT_MAX);
|
|
|
+ _fPRINTF("number %#12X", UINT_MAX);
|
|
|
+ __PRINTF("number %#12x", UINT_MAX);
|
|
|
+ _fPRINTF("number %#12x", UINT_MAX);
|
|
|
+ _fPRINTF("number %'+012d", 123456789);
|
|
|
+ _fPRINTF("number %'+012d", 1234567);
|
|
|
+
|
|
|
+ __PRINTF("char %c", 'e');
|
|
|
+ _fPRINTF("char %c", 'e');
|
|
|
+ __PRINTF("char %3c", 'e');
|
|
|
+ _fPRINTF("char %3c", 'e');
|
|
|
+
|
|
|
+ __PRINTF("ptr %18s", "e");
|
|
|
+ _fPRINTF("ptr %18s", "e");
|
|
|
+ buffer = NULL;
|
|
|
+ __PRINTF("ptr %18s", buffer);
|
|
|
+ _fPRINTF("ptr %18s", (char*)NULL);
|
|
|
+
|
|
|
+ __PRINTF("ptr %18p", "e");
|
|
|
+ _fPRINTF("ptr %18p", "e");
|
|
|
+ __PRINTF("ptr %18p", NULL);
|
|
|
+ _fPRINTF("ptr %18p", NULL);
|
|
|
+
|
|
|
+ errno = 7;
|
|
|
+ N__PRINTF("errno %30m");
|
|
|
+ N_fPRINTF("errno %30m");
|
|
|
+ __PRINTF("str %18s", "test");
|
|
|
+ _fPRINTF("str %18s", "test");
|
|
|
+ __PRINTF("str %5.3s", "test");
|
|
|
+ _fPRINTF("str %5.3s", "test");
|
|
|
+
|
|
|
+ TEST_FLOATS("f");
|
|
|
+ TEST_FLOATS("F");
|
|
|
+ /*
|
|
|
+ TEST_FLOATS("a");
|
|
|
+ TEST_FLOATS("A");
|
|
|
+ TEST_FLOATS("e");
|
|
|
+ TEST_FLOATS("E");
|
|
|
+ TEST_FLOATS("g");
|
|
|
+ TEST_FLOATS("G");
|
|
|
+ */
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|