usigned itoa

This commit is contained in:
LinlyBoi
2023-08-22 22:02:10 +03:00
parent 43c82c55fb
commit 44951b7b51
3 changed files with 22 additions and 1 deletions

3
main.h
View File

@@ -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

View File

@@ -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);

12
tests/num_test.c Normal file
View File

@@ -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
}