| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 |
- #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;
- }
|