60 lines
2.3 KiB
Markdown
60 lines
2.3 KiB
Markdown
|
# ft_printf
|
||
|
|
||
|
This is my implementation of the ft_printf project for the 42 school.
|
||
|
|
||
|
## Description
|
||
|
|
||
|
ft_printf is a function that replicates the functionality of the standard C printf function, allowing for formatted printing of strings and variables. The project requires the implementation of the ft_printf function in C, as well as the handling of a wide range of format specifiers and flags.
|
||
|
|
||
|
The project aims to develop students' understanding of variadic functions, formatting, and bit manipulation.
|
||
|
|
||
|
## Usage
|
||
|
|
||
|
To use the ft_printf function, first compile the `libftprintf.a` library by running `make` in the root directory of the project.
|
||
|
|
||
|
Then, include the header file `ft_printf.h` in your C program and call the `ft_printf` function with the desired format string and arguments. For example: `ft_printf("Hello, %s!\n", "world");`.
|
||
|
|
||
|
The function will output the formatted string to the standard output.
|
||
|
|
||
|
## Supported Specifiers
|
||
|
|
||
|
The ft_printf function supports the following format specifiers:
|
||
|
|
||
|
| Specifier | Description |
|
||
|
| --------- | ----------- |
|
||
|
| `%c` | Character |
|
||
|
| `%s` | String |
|
||
|
| `%p` | Pointer |
|
||
|
| `%d` | Signed decimal integer |
|
||
|
| `%i` | Signed decimal integer |
|
||
|
| `%u` | Unsigned decimal integer |
|
||
|
| `%x` | Unsigned hexadecimal (lowercase) |
|
||
|
| `%X` | Unsigned hexadecimal (uppercase) |
|
||
|
| `%%` | Literal `%` |
|
||
|
|
||
|
## Implementation Overview
|
||
|
|
||
|
The ft_printf function uses variadic arguments and a format string to output a formatted string to the standard output. The function first parses the format string to identify the format specifiers, then uses these to output the formatted string.
|
||
|
|
||
|
To parse the format string, the function iterates through each character in the string and performs the following actions:
|
||
|
|
||
|
if the character is not a format specifier, output it to the standard output.
|
||
|
|
||
|
To output the formatted string, the function uses a combination of standard C library functions and custom helper functions.
|
||
|
|
||
|
## Concepts Learned
|
||
|
|
||
|
Through the completion of this project, I gained knowledge and experience in the following areas:
|
||
|
|
||
|
- printf feature
|
||
|
- va_arg
|
||
|
|
||
|
## Resources
|
||
|
|
||
|
- ![The project subject](./subject.pdf)
|
||
|
- The C library documentation for the standard library functions used in the program
|
||
|
|
||
|
## Authors
|
||
|
|
||
|
This project was created by Camille CHAUVET. If you have any questions or suggestions, feel free to contact me.
|