2019. 5. 22. 06:18ใPROGRAMMING/C & C++
1. ๋ฐ์ดํฐ์ ์ด๋
๋ฐ์ดํฐ์ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ ํ๋ก๊ทธ๋จ์ ํ๋ฆ์ ๋ปํ๋ค.
[ ์ ๋ ฅ ] : ํ๋ก๊ทธ๋จ ์์ผ๋ก ๋ฐ์ดํฐ๊ฐ ํ๋ฌ ๋ค์ด์ค๋ ๊ฒ.
๋ํ์ ์ธ ์ ๋ ฅ์ฅ์น๋ ํค๋ณด๋.
[ ์ถ๋ ฅ ] : ํ๋ก๊ทธ๋จ ๋ฐ์ผ๋ก ๋ฐ์ดํฐ๊ฐ ํ๋ฌ ๋๊ฐ๋ ๊ฒ.
๋ํ์ ์ธ ์ถ๋ ฅ ์ฅ์น๋ ๋ชจ๋ํฐ.
2. ์คํธ๋ฆผ
ํ๋ก๊ทธ๋จ์์์ ๋ชจ๋ํฐ์ ํค๋ณด๋๋ฅผ ๋์์ผ๋ก
๋ฐ์ดํฐ๋ฅผ ์ ์ถ๋ ฅํ๊ธฐ ์ํด์
์ด๋ค์ ์ฐ๊ฒฐ์์ผ ์ฃผ๋ ๋ค๋ฆฌ ์ญํ ์ ํ๋ ๋งค๊ฐ์ฒด.
๋จ๋ฐฉํฅ์ผ๋ก๋ง ๋ฐ์ดํฐ์ ์ ์ก์ด ์ด๋ฃจ์ด์ง๋ค.
์คํธ๋ฆผ์ ์ด์์ฒด์ ์์ ์ ๊ณตํ๋
์ํํธ์จ์ด๋ก ๊ตฌํ๋์ด ์๋ ๊ฐ์์ ๋ค๋ฆฌ์ด๋ค.
๋ค์ ๋งํด์,
์ด์์ฒด์ ๋ ์ธ๋ถ์ฅ์น์ ํ๋ก๊ทธ๋จ๊ณผ์ ๋ฐ์ดํฐ ์ก์์ ์ ๋๊ตฌ๊ฐ ๋๋ ์คํธ๋ฆผ์ ์ ๊ณตํ๊ณ ์๋ค.
์ฝ์ ์ ์ถ๋ ฅ์ ์ํ '์ ๋ ฅ ์คํธ๋ฆผ'๊ณผ '์ถ๋ ฅ ์คํธ๋ฆผ'์
ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ฉด ์๋์ผ๋ก ์์ฑ๋๊ณ , ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋๋ฉด ์๋์ผ๋ก ์๋ฉธ๋๋ ์คํธ๋ฆผ์ด๋ค.
stdin : ํ์ค ์ ๋ ฅ ์คํธ๋ฆผ / ํค๋ณด๋ ๋์์ผ๋ก ์ ๋ ฅ
stdout : ํ์ค ์ถ๋ ฅ ์คํธ๋ฆผ / ๋ชจ๋ํฐ ๋์์ผ๋ก ์ถ๋ ฅ
stderr : ํ์ค ์๋ฌ ์คํธ๋ฆผ / ๋ชจ๋ํฐ ๋์์ผ๋ก ์ถ๋ ฅ
3. '๋ฌธ์' ๋จ์ ์ ์ถ๋ ฅ ํจ์
๋ฌธ์ ์ถ๋ ฅ ํจ์ : putchar() / fputc()
putchar()
์ธ์๋ก ์ ๋ฌ๋ ๋ฌธ์๋ฅผ ๋ชจ๋ํฐ๋ก ์ถ๋ ฅํ๋ ํจ์.
fputc()
putchar()ํจ์์ ๋์ผ. ๋จ, 2๋ฒ์งธ ์ธ์์ ๋ฌธ์๋ฅผ ์ ์กํ ์คํธ๋ฆผ์ ์ง์ ํ ์ ์๋ค.
stdout๋ฟ๋ง ์๋๋ผ, ํ์ผ์ ๋์์ผ๋ก๋ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์๋ค.
๋ฌธ์ ์ ๋ ฅ ํจ์ : getchar() / fgetc()
getchar()
stdin์ผ๋ก ํํ๋๋ ํ์ค ์ ๋ ฅ ์คํธ๋ฆผ์ผ๋ก๋ถํฐ
ํ๋์ ๋ฌธ์๋ฅผ ์ ๋ ฅ๋ฐ์์ ๋ฐํํ๋ ํจ์.
fgetc()
getchar() ํจ์์ ๊ธฐ๋ฅ์ ๋์ผ.
๋ค๋ง, ๋ฌธ์๋ฅผ ์ ๋ ฅ๋ฐ์ ์คํธ๋ฆผ์ ์ง์ ํ ์ ์๋ค.
4. '๋ฌธ์์ด' ๋จ์ ์ ์ถ๋ ฅ ํจ์
๋ฌธ์์ด ์ถ๋ ฅ ํจ์ : puts() / fputs()
ํ๋์ ๋ฌธ์์ด์ ์ถ๋ ฅํ ๋ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉํ๋ ํจ์.
puts()๋ ์๋์ผ๋ก ๊ฐํ์ด ์ด๋ฃจ์ด์ง์ง๋ง,
fputs()๋ ๋ณ๋์ ๊ฐํ ์์ ์ ๊ฑฐ์ณ์ผ ํ๋ค.
๋ฌธ์์ด ์ ๋ ฅ ํจ์ : gets() / fgets()
ํ๋์ ๋ฌธ์์ด์ ์ ๋ ฅ๋ฐ์ ๋ ์ฌ์ฉํ๋ ํจ์.
fgets()์ ๋ ๋ฒ์งธ ์ธ์์๋ ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ๋ด์์ค๋ค.
๋ง์ง๋ง์ ๊ฐํ์ด ๋ ๋ฒ ์ด๋ฃจ์ด์ง ์ด์ ๋
fgets() ํจ์๋ \n์ ๋ง๋ ๋ ๊น์ง ๋ฌธ์์ด์ ์ฝ์ด ๋ค์ด๋๋ฐ,
\n์ ์ ์ธ์ํค๊ฑฐ๋ ๋ฒ๋ฆฌ์ง ์๊ณ ๋ฌธ์์ด์ ์ผ๋ถ๋ก ๋ฐ์๋ค์ด๊ธฐ ๋๋ฌธ์ด๋ค.
5. ํ์ค ์ ์ถ๋ ฅ๊ณผ ๋ฒํผ.
์ง๊ธ๊น์ง ๋ณธ ์ ์ถ๋ ฅ ํจ์๋ค์ ๊ฐ๋ฆฌ์ผ 'ํ์ค ์ ์ถ๋ ฅ ํจ์'๋ผ๊ณ ํ๋ค.
(printf, scanf๋ ๋ง์ฐฌ๊ฐ์ง)
์ด๋ฌํ ํ์ค ์ ์ถ๋ ฅ ํจ์๋ฅผ ํตํด์ ๋ฐ์ดํฐ๋ฅผ ์ ์ถ๋ ฅ ํ๋ ๊ฒฝ์ฐ,
ํด๋น ๋ฐ์ดํฐ๋ค์ ์ด์์ฒด์ ๊ฐ ์ ๊ณตํ๋ '๋ฉ๋ชจ๋ฆฌ ๋ฒํผ'๋ฅผ ์ค๊ฐ์ ํต๊ณผํ๋ค.
(๋ฉ๋ชจ๋ฆฌ ๋ฒํผ : ๋ฐ์ดํฐ๋ฅผ ์์๋ก ๋ชจ์๋๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ)
ํค๋ณด๋๋ก๋ถํฐ ์ ๋ ฅ๋ ๋ฐ์ดํฐ๊ฐ ์ ๋ ฅ ์คํธ๋ฆผ์ ๊ฑฐ์ณ์
์ ๋ ฅ ๋ฒํผ๋ก ๋ค์ด๊ฐ๋ ์์ ์ ์ํฐํค๊ฐ ๋๋ฆฌ๋ ์์ ์ด๋ค.
๊ทธ๋์ ์๋ฌด๋ฆฌ ๋ฌธ์์ด์ ์ ๋ ฅํด๋ ์ํฐ ํค๊ฐ ๋๋ฆฌ๊ธฐ ์ ์๋ fgetsํจ์๊ฐ ๋ฌธ์์ด์ ์ฝ์ด ๋ค์ด์ง ๋ชปํ๋ค.
(์ํฐ ํค๊ฐ ๋๋ฆฌ๊ธฐ ์ ์๋ ์ ๋ ฅ ๋ฒํผ๊ฐ ๋น์์ ธ ์๋ค)
๋ฒํผ๋ง์ ์ฌ์ฉํ๋ ์ด์ ๋ '๋ฐ์ดํฐ ์ ์ก์ ํจ์จ์ฑ' ๋๋ฌธ์ด๋ค.
๋ฐ๋ก ๋ฒํผ๋ง ์์ด ํค๋ณด๋๊ฐ ๋๋ฆด ๋๋ง๋ค ๋๋ฆฐ ๋ฌธ์์ ์ ๋ณด๋ฅผ ๋ชฉ์ ์ง๋ก ๋ฐ๋ก ์ด๋์ํค๋ ๊ฒ๋ณด๋ค
์ค๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๋ฒํผ๋ฅผ ๋ฌ์ ๋ฐ์ดํฐ๋ฅผ ํ๋ฐ ๋ฌถ์ด์ ์ด๋์ํค๋ ๊ฒ์ด ํจ์จ์ ์ด๊ณ ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ด๋ค.
7. ๋ฒํผ๋ฅผ ๋น์ฐ๋ ํจ์
fflush(stdout) : ์ถ๋ ฅ ๋ฒํผ๋ฅผ ๋น์ฐ๋ ํจ์.
์ถ๋ ฅ๋ฒํผ๊ฐ ๋น์์ง๋ค๋ ๊ฒ์
์ถ๋ ฅ๋ฒํผ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๊ฐ ๋ฒํผ๋ฅผ ๋ ๋์ ๋ชฉ์ ์ง๋ก ์ด๋๋จ์ ๋ปํ๋ค.
์ด๋ ํ ์์คํ ์ ์ด๋ ํ ํ์ค ์ถ๋ ฅ๋ฒํผ๋ผ ํ ์ง๋ผ๋
๋ฒํผ์ ์ ์ฅ๋ ๋ด์ฉ์ด ๋น์์ง๋ฉด์ ๋ฐ์ดํฐ๊ฐ ๋ชฉ์ ์ง๋ก ์ด๋ํ๋ค.
์ ๋ ฅ๋ฒํผ๋ ์ด๋ป๊ฒ ๋น์ธ๊น?
'์ ๋ ฅ๋ฒํผ์ ๋น์์ง'์ '์ถ๋ ฅ๋ฒํผ์ ๋น์์ง'๊ณผ ์ฐจ์ด๊ฐ ์๋ค.
์ถ๋ ฅ๋ฒํผ์ ๋น์์ง : ๋ฐ์ดํฐ๊ฐ ๋ชฉ์ ์ง๋ก ์ ์ก๋จ.
์ ๋ ฅ๋ฒํผ์ ๋น์์ง : ๋ฐ์ดํฐ์ ์๋ฉธ.
while(getchar() != '\n');
\n์ ๋ง๋ ๋๊น์ง ๋ฌธ์๋ฅผ ์ฝ์ด๋ค์ด๋ ํจ์๋ฅผ ์๋กญ๊ฒ ์ ์ํ๋ค.
๋ฌผ๋ก ๋น์ฐ๋ ๋ชฉ์ ์ด๊ธฐ ๋๋ฌธ์ ์ฝ์ด๋ค์ธ ๋ฌธ์๋ฅผ ์ ์ฅํ๊ฑฐ๋ ํ์ง๋ ์๋๋ค.
'PROGRAMMING > C & C++' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
12. [C / C++] ํฌ์ธํฐ์ ๋ ํผ๋ฐ์ค์ ์ฐจ์ด (0) | 2019.05.25 |
---|---|
11. [C / C++] ๋ฌธ์์ด ์์์ ํฌ์ธํฐ (1) | 2019.05.24 |
9. [C / C++] ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ์ ๋์ ํ ๋น (2) (0) | 2019.05.21 |
8. [C / C++] ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ์ ๋์ ํ ๋น (1) (0) | 2019.05.21 |
7. [C์ธ์ด] ๊ตฌ์กฐ์ฒด์ ๋ฉ๋ชจ๋ฆฌ ๋จํธํ (1) | 2019.05.16 |