{"id":20635985,"url":"https://github.com/achrafelkhnissi/ft_printf","last_synced_at":"2026-04-17T16:02:22.168Z","repository":{"id":107285959,"uuid":"499218137","full_name":"achrafelkhnissi/ft_printf","owner":"achrafelkhnissi","description":"The goal of this project is pretty straightforward. Is an implementation of printf().","archived":false,"fork":false,"pushed_at":"2022-08-28T02:11:36.000Z","size":7,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-17T07:47:24.493Z","etag":null,"topics":["1337school","42cursus","42projects","42school","printf-42"],"latest_commit_sha":null,"homepage":"https://www.linkedin.com/in/achrafelkhnissi/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/achrafelkhnissi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-02T16:54:10.000Z","updated_at":"2024-12-19T10:35:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"05cc65ef-4a6c-4e0c-bf6d-9779751b5d42","html_url":"https://github.com/achrafelkhnissi/ft_printf","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/achrafelkhnissi%2Fft_printf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/achrafelkhnissi%2Fft_printf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/achrafelkhnissi%2Fft_printf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/achrafelkhnissi%2Fft_printf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/achrafelkhnissi","download_url":"https://codeload.github.com/achrafelkhnissi/ft_printf/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242650955,"owners_count":20163611,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["1337school","42cursus","42projects","42school","printf-42"],"created_at":"2024-11-16T15:08:43.539Z","updated_at":"2026-04-17T16:02:17.122Z","avatar_url":"https://github.com/achrafelkhnissi.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n\t42cursus' ft_printf\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n\t\u003cb\u003e\u003ci\u003eDevelopment repo for 42cursus' ft_printf project\u003c/i\u003e\u003c/b\u003e\u003cbr\u003e\n\tFor further information about 42cursus and its projects, please refer to \u003ca href=\"https://github.com/achrafelkhnissi/1337/blob/master/42curses/README.md\"\u003e\u003cb\u003e42cursus repo\u003c/b\u003e\u003c/a\u003e.\n\u003c/p\u003e\n\n\n\u003ch3 align=\"center\"\u003e\n\t\u003ca href=\"#%EF%B8%8F-about\"\u003eAbout\u003c/a\u003e\n\t\u003cspan\u003e · \u003c/span\u003e\n\t\u003ca href=\"#%EF%B8%8F-usage\"\u003eUsage\u003c/a\u003e\n\t\u003cspan\u003e · \u003c/span\u003e\n\t\u003ca href=\"#-useful-links\"\u003eUseful Links\u003c/a\u003e\n\u003c/h3\u003e\n\n---\n\n## 🗣️ About\n\n\u003e _This project is pretty straight forward. You will recode printf. Hopefully you will be able to reuse it in future project without the fear of being flagged as a cheater. You will mainly learn how to use variadic arguments._\n\n\t🚀 TLDR: this project consists of coding a library that contains a simplified version (more\n\tinformation below) of the printf function.\n\n### Mandatory\n\n* **format specifiers** - `cspdiuxX%`\n\n## 🛠️ Usage\n\n### Requirements\n\nThe library is written in C language and thus needs the **`gcc` compiler** and some standard **C libraries** to run.\n\n### Instructions\n\n**1. Compiling the library**\n\nTo compile the library, run:\n\n```shell\n$ cd path/to/ft_printf \u0026\u0026 make\n```\n\n**2. Using it in your code**\n\nTo use the library functions in your code, simply include its header:\n\n```C\n#include \"ft_printf.h\"\n```\n\nand, when compiling your code, add the required flags:\n\n```shell\n-lftprintf -L path/to/libftprintf.a -I path/to/ft_printf.h\n```\n\n### Third-party testers\n\n* [printfTester](https://github.com/Tripouille/printfTester)\n* [gavinfielder/pft](https://github.com/gavinfielder/pft)\n* [Mazoise/42TESTERS-PRINTF](https://github.com/Mazoise/42TESTERS-PRINTF)\n* [HappyTramp/ft_printf_test](https://github.com/HappyTramp/ft_printf_test)\n* [t0mm4rx/ftprintfdestructor](https://github.com/t0mm4rx/ftprintfdestructor)\n* [charMstr/printf_lover_v2](https://github.com/charMstr/printf_lover_v2)\n\n## 📌 Useful Links\n\n* [C++ Reference - printf](http://www.cplusplus.com/reference/cstdio/printf/)\n* [Article: Secrets of “printf” (PDF)](https://www.cypress.com/file/54441/download)\n* [MacOS documentation - printf](https://opensource.apple.com/source/xnu/xnu-201/osfmk/kern/printf.c.auto.html)\n* [IEEE-754 Floating Point Converter](https://www.h-schmidt.net/FloatConverter/IEEE754.html)\n* [How does one print floats for ft_printf? - Stack Overflow - 42 Network](https://stackoverflow.com/c/42network/questions/133/134#134)\n* [Printing Floating-Point Numbers](http://www.ryanjuckett.com/programming/printing-floating-point-numbers/)\n* [Printing Floating-Point Numbers Quickly and Accurately with Integers](https://www.cs.tufts.edu/~nr/cs257/archive/florian-loitsch/printf.pdf)\n* [What precisely does the %g printf specifier mean? - Stack Overflow](https://stackoverflow.com/questions/54162152/what-precisely-does-the-g-printf-specifier-mean)\n\n## Notes\n\n1. What is Variadic Functions?\n\t- Variadic function takes indefinite size arity and a variable number of arguments as a parameter. Situations that you do not know how many parameters pass the function.\n2. what is ellipses (...)?\n\t- The ellipsis (...) is part of the C language and indicates that there are 0 or more optional arguments.\n2. What is va_list?\n\t-\n3. What is va_start?\n\t- gets the address of the first argument.\n4. What is va_arg?\n\t- dereference the block address and type cast it to the appropriate type. then goes to the next block of memory.\n\t- What is a \"Type Descriptor\"?\n5. What is va_end?\n\t-\n6. Calling convensions!\n\t- https://www.youtube.com/watch?v=JHGTXM3oIs0\n\t- https://en.wikipedia.org/wiki/X86_calling_conventions\n\t- https://www.youtube.com/watch?v=F3XiH78erNM\u0026t=1615s\n## notes\n- man stdarg\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fachrafelkhnissi%2Fft_printf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fachrafelkhnissi%2Fft_printf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fachrafelkhnissi%2Fft_printf/lists"}