/printf

Team project

Primary LanguageC

0x11. C - printf Team Project

<<<<<<< HEAD <<<<<<< HEAD

Project by Gafar H. Salam and Elizabeth Alade alias DBossladyTechgirl

Collaboration on Team Project on Printf.

  • Add README file
  • Add print_rev function
  • Add print_binary file
  • Add main.h file
  • Add test dir
  • Add main.c file
  • Add putchar file
  • Add printf file
  • Add functions and other files
    ConceptsConcepts

For this project, we expect you to look at these concepts:

  • Group Projects
  • Pair Programming - How To
  • Flowcharts
  • Technical Writing

Resources

Read or watch:

  • Secrets of printf
  • Group Projects concept page (Don’t forget to read this)
  • Flowcharts concept page

man or help:

  • printf (3)
    =======

766e9103e596f2e2b5258eef0cf6847b57e3241d <<<<<<< HEAD

Project by Gafar H. Salam and Elizabeth Alade

======= Add Main.h file with function and struc
Add Test Directories
Add main.c file with functions

Resources

Read or watch:

Secrets of printf

Group Projects concept page (Don’t forget to read this)
Flowcharts concept page

More Info

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)

Compilation

  • Your code will be compiled this way:
    $ gcc -Wall -Werror -Wextra -pedantic -std=gnu89 *.c
  • As a consequence, be careful not to push any c file containing a main function in the root directory of your project (you could have a test folder containing all your tests files including main functions)
  • Our main files will include your main header file (main.h): #include main.h
  • You might want to look at the gcc flag -Wno-format when testing with your _printf and the standard printf. Example of test file that you could use:
alex@ubuntu:~/c/printf$ cat main.c 
#include <limits.h>
#include <stdio.h>
#include "main.h"

/**
 * main - Entry point
 *
 * Return: Always 0
 */
int main(void)
{
    int len;
    int len2;
    unsigned int ui;
    void *addr;

    len = _printf("Let's try to printf a simple sentence.\n");
    len2 = printf("Let's try to printf a simple sentence.\n");
    ui = (unsigned int)INT_MAX + 1024;
    addr = (void *)0x7ffe637541f0;
    _printf("Length:[%d, %i]\n", len, len);
    printf("Length:[%d, %i]\n", len2, len2);
    _printf("Negative:[%d]\n", -762534);
    printf("Negative:[%d]\n", -762534);
    _printf("Unsigned:[%u]\n", ui);
    printf("Unsigned:[%u]\n", ui);
    _printf("Unsigned octal:[%o]\n", ui);
    printf("Unsigned octal:[%o]\n", ui);
    _printf("Unsigned hexadecimal:[%x, %X]\n", ui, ui);
    printf("Unsigned hexadecimal:[%x, %X]\n", ui, ui);
    _printf("Character:[%c]\n", 'H');
    printf("Character:[%c]\n", 'H');
    _printf("String:[%s]\n", "I am a string !");
    printf("String:[%s]\n", "I am a string !");
    _printf("Address:[%p]\n", addr);
    printf("Address:[%p]\n", addr);
    len = _printf("Percent:[%%]\n");
    len2 = printf("Percent:[%%]\n");
    _printf("Len:[%d]\n", len);
    printf("Len:[%d]\n", len2);
    _printf("Unknown:[%r]\n");
    printf("Unknown:[%r]\n");
    return (0);
}
alex@ubuntu:~/c/printf$ gcc -Wall -Wextra -Werror -pedantic -std=gnu89 -Wno-format *.c
alex@ubuntu:~/c/printf$ ./printf
Let's try to printf a simple sentence.
Let's try to printf a simple sentence.
Length:[39, 39]
Length:[39, 39]
Negative:[-762534]
Negative:[-762534]
Unsigned:[2147484671]
Unsigned:[2147484671]
Unsigned octal:[20000001777]
Unsigned octal:[20000001777]
Unsigned hexadecimal:[800003ff, 800003FF]
Unsigned hexadecimal:[800003ff, 800003FF]
Character:[H]
Character:[H]
String:[I am a string !]
String:[I am a string !]
Address:[0x7ffe637541f0]
Address:[0x7ffe637541f0]
Percent:[%]
Percent:[%]
Len:[12]
Len:[12]
Unknown:[%r]
Unknown:[%r]
alex@ubuntu:~/c/printf$  
  • We strongly encourage you to work all together on a set of tests
  • If the task does not specify what to do with an edge case, do the same as printf

50e364a45a507314a92df694292315233733a307 <<<<<<< HEAD =======

Project by Gafar H. Salam and Elizabeth Alade alias DBossladyTechgirl

Collaboration on Team Project on Printf.

  • Add README file
  • Add print_rev function
  • Add print_binary file
  • Add main.h file
  • Add test dir
  • Add main.c file
  • Add putchar file
  • Add printf file
  • Add functions and other files
    ConceptsConcepts

For this project, we expect you to look at these concepts:

  • Group Projects
  • Pair Programming - How To
  • Flowcharts
  • Technical Writing

Resources

Read or watch:

  • Secrets of printf
  • Group Projects concept page (Don’t forget to read this)
  • Flowcharts concept page

man or help:

  • printf (3)

13d7006e3bfd6c404af6b7ab6544023de16ea5ec ======= 120967529f91f0b4ec5be36c48e659a1f79b5b14 766e9103e596f2e2b5258eef0cf6847b57e3241d