์ ์ถ๋ ฅ์์ printf ๋ฐ scanf๋ฅผ ์ฐ์ง ์๊ณ
cout ๋ฐ cin์ผ๋ก๋ง ์ ์ถ๋ ฅ์ ํ ์๊ฐ์ด๋ผ๋ฉด,
ios::sync_with_stdio(0); cin.tie(0); ๋ฅผ ์จ์ฃผ๋ฉด ์ข๋ค.
์ ์ถ๋ ฅ ์์ด ๋ง์์ง๋๋ผ๋ ์๊ฐ์ ๋จ์ถ์์ผ์ฃผ๋ ํจ๊ณผ๊ฐ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ฌ์ฉ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ์ด cin๊ณผ cout ํ๊ธฐ ์ ์ main ํจ์์์ ์์ฑํ๋ ๊ฒ์ด๋ค.
int main()
{
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
string s;
getline(cin,s);
cout << s;
}
ios::sync_with_stdio(0);๋ ํ๋ก๊ทธ๋๋จธ๊ฐ printf ๋ฐ scanf๋ฅผ ์ฌ์ฉํ์ง ์๊ณ cout ๋ฐ cin์ผ๋ก๋ง ์ ์ถ๋ ฅ์ ํ๋ ๊ฒฝ์ฐ๋ฅผ ์ํด
c stream(printf ๋ฐ scanf)๊ณผ c++ stream(cout ๋ฐ cin) ๋๊ธฐํ๋ฅผ ๋์ด๋ฒ๋ฆฌ๋ ๊ฒ์ด๋ค. ๊ทธ๋ผ์ผ๋ก์จ ์ธ๋ฐ์์ด ์ก์๋จนํ๋ ์๊ฐ์ ์ค์ผ ์ ์๋ค.
์๋ฐํ ๋งํด์ boolํ์ ์ด๋ฏ๋ก ios::sync_with_stdio(false);์ง๋ง false์๋ฆฌ์ 0์ ๋ฃ์ด๋ ์๊ด์๋ค.
cin.tie(0); ๊ฐ์ ๊ฒฝ์ฐ์๋ ๋ฒํผ์ ๊ฐ๋ ์ ์ดํดํ๋ฉด ์ข๋ค. ์ ๋ ฅ๋ ๋ฐ์ดํฐ๋ ๋ฒํผ์ ์์๋ก ์ ์ฅ๋์๋ค๊ฐ, ๋ฒํผ๊ฐ ๋น์์ง๋ฉด์ ์ถ๋ ฅํ๋ ๊ตฌ์กฐ์ด๋ค. ์์์ ์ผ๋ก ์๊ฐํ๋ฉด ๋ฒํผ์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์๋ค๊ฐ ๋น์์ง๊ณ ์ถ๋ ฅ๋๋ ๊ณผ์ ์์ ๋ฐ์ดํฐ ํ ๋จ์์ฉ ๋์ด์ ์ฒ๋ฆฌ๋๋ฉด ๊ผฌ์ผ ์ผ์ด ์์ด ์ข๊ฒ ์ง๋ง, ์ค์์ ๋ฒํผ์ ํ๊บผ๋ฒ์ ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฅผ ๋ด์๋์๋ค๊ฐ ๋น์ฐ๊ณ ์ถ๋ ฅํ๋ ๋ฐฉ์์ผ๋ก ์ ๊ฐ๋๋ค.
๋ณต์กํ ์ ์ถ๋ ฅ์ ๋ค๋์ผ๋ก ํ๋ ํ๋ก๊ทธ๋จ ๋ด์์ ๋ฒํผ ์์๊ฐ ๊ผฌ์ผ ์ ์๋ ๊ฒ์ ๋ง๊ธฐ ์ํด c++์ธ์ด์์๋ ๋ค๋ฅธ stream์์ ์ ์ถ๋ ฅ์์ฒญ์ด ์ค๊ธฐ์ ์ stream์ flush์์ผ์ฃผ๊ณ ์๋ค.
์ฝ๊ฒ ์ค๋ช ํ์๋ฉด
์ ๋ ฅ -> ์ถ๋ ฅ -> ์ ๋ ฅ์ ํ ๋์
๋ง์ง๋ง ์ ๋ ฅ์ ํ๊ธฐ ์ ์ ์ถ๋ ฅ ๋ฒํผ๋ฅผ ๋น์์ฃผ๊ฒ ๋๋ค.
stream์ tieํ๋ฉด ๋ค๋ฅธ stream์์ ์ ์ถ๋ ฅ์์ฒญ์ด ์ค๊ธฐ์ ์ stream์ flush๋๋ค๋ ๊ฒ์ ์ดํดํ๋ค๋ฉด
cin.tie(0);๋ ์ดํดํ ์ ์๋ค.
ํ๋ง๋๋ก, cin์ cout์ผ๋ก๋ถํฐ untie ํ๋ค. stream์ flush์ํค๋ ์ฐ์ฐ์๊ฐ ๋ง์ ์๋ผ๋ ๊ฒ์ด๋ค.
'C++ > c++' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
c++ vector /pair / sort ์ฌ์ฉ ์์ (0) | 2021.11.17 |
---|---|
[c++] std::array / try catch / auto element ์ฐ์ต ์์ (0) | 2021.09.21 |
[c++] ๊ณต๋ฐฑ์ ํฌํจํ ๋ฌธ์์ด์ ์ ๋ ฅํ๊ธฐ ์ข์ ํจ์ getline() (0) | 2021.09.19 |
c++ ํน์ ํจ์์ ์ธ์๋ก ๋ฐฐ์ด์ฃผ์๋ฅผ ๋๊ธฐ๋ฉด? (0) | 2021.09.19 |
#include <conio.h> _getch() ์ค๋ช ๊ณผ ์ฝ๋ ์์ (0) | 2021.05.25 |