π³ 42 SEOUL
[C / 42seoul / ft_printf] - μμ μ§μ μ (format specifier)
Newmon
2021. 6. 1. 15:04
%[νλκ·Έ][ν][.μ λ°λ][κΈΈμ΄]μμμ§μ μ
printfλ νλκ·Έ, ν, μ λ°λ, κΈΈμ΄ κ·Έλ¦¬κ³ μμμ§μ μλ₯Ό μ‘°ν©νμ¬ μ¬μ©ν μ μλ ν¨μμ΄λ€.
ft_printf κ³Όμ λ₯Ό νκΈ° μν΄ νλνλ λ―μ΄λ΄μΌκ² λ€.
μμμ§μ μ : csdiupxX%
<stdio.h>μ printfμλ λ λ€μν μμμ§μ μκ° μμΌλ, ft_printfμμ ꡬνν μμμ§μ μ νμ μ μλμ κ°λ€.
- c : character , (va_arg type : int)
- s : string , (va_arg type : string)
- p: pointer (ν¬μΈν° μ£Όμ) (va_arg type : long long)
- d : signed int (va_arg type : int)
- i : signed int (va_arg type : int)
- u : unsigned int (va_arg type : unsigned int)
- x / X : unsigned 16μ§μ (xμ Xλ 16μ§μμ λμλ¬Έμ μ°¨μ΄) (va_arg type : unsigned int)
μμμ§μ μμμ d μ i μ μ°¨μ΄
(d μ i λ printf μμλ κΈ°λ³Έμ μΌλ‘ κ°μΌλ, scanf μμλ μν μ΄ λ€λ₯΄λ€κ³ νλ€. d : 10μ§μ μ λ ₯λ°μ, i : 10/8/16μ§μ μ λ ₯ λ°μ)
characterμ va_arg νμ μ΄ intμΈ μ΄μ
- GCC(Cνμ€)μμλ κ°λ³μΈμλ‘ λ°μ κ°μ΄ intλ³΄λ€ μλ€λ©΄ intλ₯Ό μ§μ ν΄μΌνλ€.
- floatλ doubleλ‘ μ§μ ν΄μΌ νλ€.
νλκ·Έ
-
: μΌμͺ½ μ λ ¬ (κΈ°λ³Έκ°μ μ€λ₯Έμͺ½ μ λ ¬μ΄λ€)+
: μμμΌ λλ + λΆνΈ, μμμΌλλ - λΆνΈ μΆλ ₯(곡백)
: μμμΌλλ§ - λΆνΈ μΆλ ₯*
: κ°λ³μΈμλ‘ νμ λ°μλΈλ€.0
: μΆλ ₯νλ νμ λ¨λ 곡κ°μ 0μΌλ‘ μ±μλ£λλ€.
ν
μ«μ
: μ§μ ν μ«μλ§νΌ νμ μ§μ νμ¬ μΆλ ₯νλ€. μ€μλ.(μμμ )
,e+
κΉμ§ νμ ν¬ν¨λλ€.- μΆλ ₯ν κ°μ΄ μ§μ ν νλ³΄λ€ μμΌλ©΄ μλ¦Ώμλ₯Ό λ§μΆκΈ° μν΄ κ³΅λ°± λλ 0μ μ±μ λ£λλ€.
- μΆλ ₯κ°μ΄ μ§μ λ ν λ³΄λ€ ν¬λ€λ©΄ νμ 무μλλ€.
- widthμ μμκ° ν λΉλλ©΄ -νλκ·Έ(μ’μΈ‘μ λ ¬) + widthλ‘ κ°μ£Όνλ€.
- νμ * λ₯Ό μ΄μ©νμ¬ κ°λ³μΈμλ‘λ λ°μ μ μλ€.
μ λ°λ
- νκ³Ό ꡬλΆλλλ‘ μμ dot(.)μ μ°μ΄ μ λ ₯ν΄μΌνλ€.
- μΆλ ₯ν κ°μ μ λ°λλ₯Ό μν μλ¦Ώμλ₯Ό μ€μ νλ€.
- νμ λ¬Έμμ΄μμ μ λ°λλ₯Ό λνλ΄μ§λ μμ§λ§ λ€μ μΈμλ‘ μ λ°λ κ°μ μ€λ€. μ΄ λ μΈμλ νμ νκ·Έκ° μ μ©λλ λ°μ΄ν μμ μμ΄μΌ νλ€.
- μΆλ ₯κ° μ μ(d, i)μΌ λ : μ€μ ν μ λ°λλ₯Ό λ§μΆκΈ° μν΄ μλ¦Ώμ λ§νΌ 0μ μΆκ°νλ€. μΆλ ₯κ°μ κΈΈμ΄κΈ° λ κΈΈλ€λ©΄, μ λ°λλ 무μλλ€.
- μΆλ ₯ν κ°μ΄ μ€μμΌ λ : λ°μ¬λ¦Ό νΉμ μμμ μ΄νμ 0μ λΆμ¬μ, μ λ°λ λ§νΌμ μμμ μ리λ₯Ό μΆλ ₯νλ€. μ€μ μ 체μ μλ¦Ώμ μ€μ μ widthμ΅μ μ μ¬μ©νλ€.
- μ λ°λμ μμκ° ν λΉλλ©΄ 무μλλ€.
ft_printf ꡬνμ κ³ λ €ν μ
-
νλκ·Έμ0
νλκ·Έκ° κ°μ΄ μλ€λ©΄0
μ 무μλλ€.- μ λ°λμ
0
νλκ·Έκ° κ°μ΄ μμ΄λ0
μ 무μλλ€. - μ€μ ν νλ³΄λ€ μΆλ ₯ν λ΄μ©μ΄ λ κΈΈλ€λ©΄ ? νμ 무μλλ€.
- νμ
*
λ₯Ό μ¬μ©νμ¬ κ°λ³μΈμλ‘ κ°μ λ°μμ¬ μλ μλ€. - μ λ°λλ
*
λ₯Ό μ¬μ©νμ¬ κ°λ³μΈμλ‘ κ°μ λ°μμ¬ μ μλ€. - μ λ°λμ μ μλ₯Ό ν¨κ» μ¬μ©νλ©΄, '0'μ μ±μλ£μ΄ μΆλ ₯λλ€.