From 44951b7b512f184981c7b494e707a24c557a2cbb Mon Sep 17 00:00:00 2001 From: LinlyBoi Date: Tue, 22 Aug 2023 22:02:10 +0300 Subject: [PATCH] usigned itoa --- main.h | 3 +++ printf.c | 8 +++++++- tests/num_test.c | 12 ++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 tests/num_test.c diff --git a/main.h b/main.h index 1649623..f24843b 100644 --- a/main.h +++ b/main.h @@ -10,5 +10,8 @@ int _puts(char *str); int _putchar(char c); char *_memset(char *adr, int bval); int fmt(char c, va_list args); +char *_str_reverse(char *str); +char *_itoa(int n, int base); +char *_uitoa(unsigned int n, int base); #endif diff --git a/printf.c b/printf.c index 3f098aa..7f4ee74 100644 --- a/printf.c +++ b/printf.c @@ -43,7 +43,7 @@ int _printf(const char *format, ...) } if (buffer) { - _puts(buffer); + printed += _puts(buffer); free(buffer); } return (printed); @@ -64,6 +64,12 @@ int fmt(char c, va_list args) return (_putchar(va_arg(args, int))); case '%': /*add 1 byte*/ return (_putchar('%')); + case 'd': + return (_puts(_itoa(va_arg(args, int), 10))); + case 'i': + return (_puts(_itoa(va_arg(args, int), 10))); + case 'b': + return (_puts(_itoa(va_arg(args, int), 2))); default: _putchar('%'); /* TODO make this cleaner */ _putchar(c); diff --git a/tests/num_test.c b/tests/num_test.c new file mode 100644 index 0000000..31ceb88 --- /dev/null +++ b/tests/num_test.c @@ -0,0 +1,12 @@ +#include "../main.h" +#define shit 0 +#define fr ; +/** + * main - no cap fr %d + * + */ +int main(void) +{ + _printf("the number is: %d\n", 10)fr + return (shit)fr +}