proto ft_printf() - kevshouse/The-Under_C_World GitHub Wiki


flowchart TD
    A[Start ft_printf] --> B[Initialize va_list args]
    B --> C[Start loop: *format != 0]
    C --> D{Is *format == '%'?}
    D -->|Yes| E[Increment format]
    E --> F{Switch *format}
    F -->|Case 'c'| G[Fetch char - int promoted]
    G --> H[Call ft_putchar]
    H --> I[Add to count]
    F -->|Case 's'| J[Fetch char*]
    J --> K[Call ft_putstr]
    K --> I
    F -->|Case 'd'| L["(Unimplemented: ft_putnbr)"]
    F -->|Default| M[Write '%' + *format]
    M --> I
    D -->|No| N[Write *format]
    N --> I
    I --> O[Increment format]
    O --> C
    C -->|End of format| P[Call va_end with args]
    P --> Q[Return count]
    
    subgraph Helper Functions
        H --> ft_putchar["Call ft_putchar with c"]
        K --> ft_putstr["Call ft_putstr with str"]
        ft_putchar --> R[Write to output: 1, &c, 1]
        ft_putstr --> S[Loop: write each char]
    end