๐ณ 42 SEOUL [C / 42seoul / ft_printf] - ์์ ์ง์ ์ (format specifier) - %[ํ๋๊ทธ][ํญ][.์ ๋ฐ๋][๊ธธ์ด]์์์ง์ ์ 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'์ ์ฑ์๋ฃ์ด ์ถ๋ ฅ๋๋ค. ๊ณต์ ํ๊ธฐ URL ๋ณต์ฌ์นด์นด์คํก ๊ณต์ ํ์ด์ค๋ถ ๊ณต์ ์์ค ๊ณต์ ๊ฒ์๊ธ ๊ด๋ฆฌ ๊ตฌ๋ ํ๊ธฐnewmon Contents %[ํ๋๊ทธ][ํญ][.์ ๋ฐ๋][๊ธธ์ด]์์์ง์ ์ ์์์ง์ ์:csdiupxX% ์์์ง์ ์์์d์i์์ฐจ์ด character์va_argํ์ ์ดint์ธ์ด์ ํ๋๊ทธ ํญ ์ ๋ฐ๋ ft_printf๊ตฌํ์๊ณ ๋ คํ ์ ๋น์ ์ด ์ข์ํ ๋งํ ์ฝํ ์ธ (netwhat) - IP Adress , class 2021.07.04 (Netwhat) - ํ๋ก์ ํธ ๋ด์ฉ ๋ฐ ๋ชฉ์ฐจ 2021.07.04 [C / 42seoul / ft_printf] - ๊ฐ๋ณ์ธ์ (variable argument) 2021.05.27 [42seoul / ft_printf] ํ๋ก์ ํธ ๋ด์ฉ ๋ฐ ์์์ผ ํ ๋ด์ฉ 2021.05.27 ๋๊ธ 0 + ์ด์ ๋๊ธ ๋๋ณด๊ธฐ