%[ํ๋๊ทธ][ํญ][.์ ๋ฐ๋][๊ธธ์ด]์์์ง์ ์
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'์ ์ฑ์๋ฃ์ด ์ถ๋ ฅ๋๋ค.