C++/c++

[c++] ์ฝ”๋”ฉํ…Œ์ŠคํŠธ์—์„œ ios::sync_with_stdio; cin.tie(0); ๋ฅผ ์“ฐ๋ฉด ์ข‹์€ ์ด์œ 

Rainbow๐ŸŒˆCoder 2021. 9. 19. 16:15
728x90

์ž…์ถœ๋ ฅ์‹œ์— 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์‹œํ‚ค๋Š” ์—ฐ์‚ฐ์‹œ๊ฐ„ ๋งˆ์ € ์•„๋ผ๋Š” ๊ฒƒ์ด๋‹ค.

728x90