[C++] cin.ignore()์ผ๋ก ๋ฒํผ ๋น์ฐ๊ธฐ
by rlaehddnd0422C++์์ ์คํธ๋ง์ ์ ๋ ฅ๋ฐ์ ๋ std::cin์ ์ด์ฉํด ์ ๋ ฅ๋ฐ๊ณค ํฉ๋๋ค.
์ด ๋ ์ ๋ ฅ๋ฐ๋ ์คํธ๋ง์ ๊ณต๋ฐฑ์ ํฌํจํ๊ณ ์ถ์ ๋, ์๋ฅผ ๋ค๋ฉด "hello world" ๋ผ๋ ์คํธ๋ง์ ํ๋์ ๋ณ์์ ์ ์ฅํ๊ธฐ ์ํด์๋ getline()์ ํตํด ์ ๋ ฅ์ ๋ฐ์์ผ ํฉ๋๋ค.
ํ์ง๋ง ์ด ๋ getline์ ํธ์ถํ๊ธฐ ์ ๋ฐ๋ ์ ๋ ฅ์ด ์๋ค๋ฉด, ๋ฒํผ์ ๊ฐํ๋ฌธ์(\n)๊ฐ ๋จ์์๊ธฐ ๋๋ฌธ์ '\n'์ด getline์ ๋ฐ๋ก ์ ๋ ฅ๋์ด ๋ฒ๋ฆฌ๊ฒ ๋ฉ๋๋ค.
cin์ '\n'์ ์ฒ๋ฆฌํ์ง ์๊ณ ์ ๋ ฅ๋ฒํผ์ ๋จ๊ฒจ๋ โก๏ธ getline()์ ์ ๋ ฅ๋ฒํผ์ ๋จ์์๋ '\n'์ ๊ฐ์ ธ์์ ์ฒ๋ฆฌ โก๏ธ ์ ๋ ฅ๋ฐ์ ์ ์ฅ๋ ์คํธ๋ง ๋ณ์์ ์๋ถ๋ถ์ '\n'์ด ํจ๊ป ์ ์ฅ๋จ.
int n; string s; cin >> n; getline(cin, s); // n์ ์
๋ ฅ ์ดํ ๋ฒํผ์ '\n'์ด ๋จ์์์ด '\n'์ด ๋ฐ๋ก ์
๋ ฅ์ผ๋ก ๋ค์ด๊ฐ.
์ด ๋ cin.ignore()์ ํตํด ๋ฒํผ๋ฅผ ๋น์ธ ์ ์์ต๋๋ค.
int n; string s; cin >> n; cin.ignore(); // n์ ์
๋ ฅ์ดํ ๋ฒํผ์ ๋จ์ '\n'์ ๋ฒํผ๋ฅผ ๋น์์ผ๋ก์จ ๋ฒํผ์์ ์ญ์ . getline(cin, s);
๋ธ๋ก๊ทธ์ ์ ๋ณด
Study Repository
rlaehddnd0422