diff --git a/printf.c b/printf.c index 54c6c61..452a330 100644 --- a/printf.c +++ b/printf.c @@ -1,5 +1,4 @@ #include "main.h" -#include #include #include /** @@ -41,18 +40,7 @@ int _printf(const char *format, ...) return (-1); buff_idx = 0; } - switch (*(format + fmt_idx + 1)) /*this needs to shrink*/ - { - case 's': - printed += _puts(va_arg(args, char*)); - break; - case 'c': - printed += _putchar(va_arg(args, int)); - break; - case '%': /*add 1 byte*/ - printed += _putchar('%'); - break; - } + printed += fmt(*(format + fmt_idx + 1)); fmt_idx += 2; } else @@ -69,3 +57,19 @@ int _printf(const char *format, ...) } return (printed); } +int fmt(char c, va_list args) +{ + switch (c) /*this needs to shrink*/ + { + case 's': + return(_puts(va_arg(args, char*))); + break; + case 'c': + return (_putchar(va_arg(args, int))); + break; + case '%': /*add 1 byte*/ + return (_putchar('%')); + break; + } + +}