This project is the first team project we are working on as an ALX SE cohort 9 students.
_printf is the C language function to do format-ted printing.
vi, vim, emacs
-Wall -Werror -Wextra -pedantic -std=gnu89
In the following examples, the main.c files are shown as examples. You can use them to test your functions, but you don’t have to push them to your repo (if you do we won’t take them into account). We will use our own main.c files at compilation. Our main.c files might be different from the one shown in the examples
Don’t forget to push your header file All your header files should be include guarded
- Writing our own
printf
function, this is a project done under ALX Low Level Programming. A collaboration project by Ugobo ThankGod and Paul Sabonde.
-
The function
_printf
writes output to stdout. The function writes under the control of aformat
string that specifies how subsequent arguments (accessed via the variable-length argument facilities of standard librarystdarg
) are converted for output. -
Prototype:
int _printf(const char *format, ...);
- Upon success,
_printf
returns the number of characters printed (excluding the terminating null byte used to end output to strings). If an output error is encountered, the function returns-1
.
- The
format
string argument is a constant character string composed of zero or more directives: ordinary characters (apart from%
) which are copied unchanged to the output stream; and conversion specifications, each of which results in fetching zero or more subsequent arguments. - Conversion specification is introduced by the character
%
and ends with a conversion specifier (which in whole make up the format specifier.)
- All your files will be compiled on Ubuntu 20.04 LTS using
gcc
, using the options-Wall -Werror -Wextra -pedantic -std=gnu89
- All your files should end with a new line.
- No more than 5 functions per file.
- You are not allowed to use global variables.
- The prototypes of all your functions should be included in your header file called
holberton.h
- All your header files should be include guarded.
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
)
- There should be one project repository per group. If you clone/fork/whatever a project repository with the same name before the second deadline, you risk a 0% score.
- The code can be compiled like this:
gcc -Wall -Werror -Wextra -pedantic -std=gnu89 test/main.c *.c -o print
- All test files will be in the test directory.
Samanta Casale
@SAMCAS20Ugobo ThankGod
ugobothankgod@gmail.com @ugoMusk 👨💻
-
I'm not going anywhere. You can print that wherever you want to. I'm here and I'm a Spur for life : A function that produces output according to a format.
- Prototype: int
_printf(const char *format, ...);
- Returns: the number of characters printed (excluding the null byte used to end output to strings)
- write output to stdout, the standard output stream
format
is a character string. The format string is composed of zero or more directives. Seeman 3 printf
for more detail. You need to handle the following conversion specifiers:c
s
%
- You don’t have to reproduce the buffer handling of the C library
printf
function. - You don’t have to handle the flag characters.
- You don’t have to handle field width.
- You don’t have to handle precision.
- You don’t have to handle the length modifiers.
- Prototype: int
-
Education is when you read the fine print. Experience is what you get if you don't : Handle the following conversion specifiers:
d
i
- You don’t have to handle the flag characters.
- You don’t have to handle field width.
- You don’t have to handle precision.
- You don’t have to handle the length modifiers.
-
Just because it's in print doesn't mean it's the gospel : Create a man page for your function.
- How to read the man page:
man ./man_3_printf
- How to read the man page: