_printf is a custom implementation of the C programming function printf.
Prototype: int _printf(const char *, ...);
Integer
-
Input:
_printf("There are %i dozens in a gross\n", 12); -
Output:
There are 12 dozens in a gross
Character
-
Input:
_printf("The first letter in the alphabet is %c\n", 'A'); -
Output:
The first letter in the alphabet is A
String
-
Input:
_printf("%s\n", 'This is a string.'); -
Output:
This is a string.
Decimal:
-
Input:
_printf("%d\n", 1000); -
Output:
1000
Rot13
-
Input:
_printf("Unknown:[%R]\n", "HELLO WORLD"); -
Output:
URYYB JBEYQ
FLAGS
-
Input:
printf("Flag: [%+ d]", 1230); -
Output:
Flag: [+1230] => 13
OCTAL
-
Input:
printf("Unsigned octal:[%o]", 6); -
Output:
Unsigned octal:[6] => 18
-
All files will be compiled on Ubuntu 14.04 LTS
-
Programs and functions will be compiled with gcc 4.8.4 using flags -Wall -Werror -Wextra and -pedantic
-
Code must follow the [Betty] style
-
Global variables are not allowed
-
Authorized functions and macros:
-
write(man 2 write) -
malloc(man 3 malloc) -
free(man 3 free) -
va_start(man 3 va_start) -
va_end(man 3 va_end) -
va_copy(man 3 va_copy) -
va_arg(man 3 va_arg)
-
-
Write function that produces output with conversion specifiers
c,s, and%. -
Handle conversion specifiers
d,i. -
Create a man page for your function.
-
Handle conversion specifier
b. -
Handle conversion specifiers
u,o,x,X. -
Use a local buffer of 1024 chars in order to call write as little as possible.
-
Handle conversion specifier
S. -
Handle conversion specifier
p. -
Handle flag characters
+, space, and#for non-custom conversion specifiers. -
Handle length modifiers
landhfor non-custom conversion specifiers. -
Handle the field width for non-custom conversion specifiers.
-
Handle the precision for non-custom conversion specifiers.
-
Handle the
0flag character for non-custom conversion specifiers. -
Handle the custom conversion specifier
rthat prints the reversed string. -
Handle the custom conversion specifier
Rthat prints the rot13'ed string. -
All above options should work well together.
_printf.c
- contains the fucntion
_printf, which uses the prototypeint _printf(const char *format, ...);. The format string is composed of zero or more directives. Seeman 3 printffor more detail. _printf will return the number of characters printed (excluding the null byte used to end output to strings) and will write output to stdout, the standard output stream.
_putchar.c
- contains the function
_putchar, which writes a character to stdout.
main.h
*contains all function prototypes used for _printf.
man_3_printf
- manual page for the custom
_printffunction.
functions.c functions1.c functions2.c
-
contains all function of each specifier used for
_printf. -
all function have its own description inside the file.
handle_print.c
- contains arguments types used for
_printf.
get_flags.c
- contains all function for each flag use for
_printf.
utils.c
- contains some necessary functionalities for
_printf.
ger_width.c
- contains functions to get width for spcifics spcifiers.
writee_handlers.c
- contains write functions.