๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โœ’๏ธ C Programming/Practice & Tips

[C ์–ธ์–ด] gets_s() ํ•จ์ˆ˜ ์‚ฌ์šฉ ์‹œ ์ž…๋ ฅ์ด ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ž…๋ ฅ๊ฐ’์ด ๋ฌด์‹œ๋  ๋•Œ: rewind(stdin)

by A Lim Han 2023. 2. 3.

# gets_s() ํ•จ์ˆ˜ ์‚ฌ์šฉ ์‹œ ์ž…๋ ฅ์ด ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ž…๋ ฅ๊ฐ’์ด ๋ฌด์‹œ๋  ๋•Œ 

 

 

 C ์–ธ์–ด๋ฅผ ํ†ตํ•œ ์ฝ”๋”ฉ์—์„œ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›๊ธฐ ์œ„ํ•ด gets_s() ํ•จ์ˆ˜๋ฅผ ํ”ํžˆ ์‚ฌ์šฉํ•œ๋‹ค.

ํ•˜์ง€๋งŒ ํ•จ์ˆ˜ ์‚ฌ์šฉ ์ค‘ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž…๋ ฅ์ด ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ž…๋ ฅ๊ฐ’์ด ๋ฌด์‹œ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

 

Line 53, 54

 

์œ„ ์ฝ”๋“œ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘๋™์‹œํ‚ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์ €์ž ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๋Š” ๊ณผ์ •์ด ์ƒ๋žต๋˜๊ณ  ๊ณง๋ฐ”๋กœ ๋‹ค์Œ ๋ฃจํ”„๊ฐ€ ์‹คํ–‰๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ( gets_s() ํ•จ์ˆ˜์˜ ์ž…๋ ฅ์ด ์ •์ƒ์ ์ด์ง€ ์•Š์Œ )

์ €์ž ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๋Š” ๋ถ€๋ถ„์ด ๋ฌด์‹œ๋จ

 

 

 ์ด๋Ÿฐ ๊ฒฝ์šฐ๋Š” rewind(stdin)์„ ์ด์šฉํ•ด ํ•ด๊ฒฐ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

# rewind(stdin)

: rewind()๋Š” ์ŠคํŠธ๋ฆผ์˜ ์œ„์น˜๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•œ ํ•จ์ˆ˜๋กœ, ๊ธฐ๋ณธํ˜•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

void rewind( FILE * stream )

rewind() ํ•จ์ˆ˜์— ํ‘œ์ค€ ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ์ธ stdin( = standard input )์„ ๊ฐ’์œผ๋กœ ์ฃผ๊ฒŒ ๋˜๋ฉด, ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ์˜ ์œ„์น˜๊ฐ€ ์ฒ˜์Œ ์‹œ์ž‘ ์œ„์น˜๋กœ ์ด๋™ํ•œ๋‹ค. ์ดํ›„ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ’์„ ์ž…๋ ฅํ•˜๊ฒŒ ๋˜๋ฉด ๊ธฐ์กด๊ฐ’์„ ๋ฎ์–ด ์“ฐ๋ฉฐ ์ƒˆ๋กœ์šด ๊ฐ’์„ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

 

 

์‚ฌ์šฉ๋œ gets_s() ํ•จ์ˆ˜์˜ ๋ฐ”๋กœ ์œ— ์ค„์— rewind(stdin); ์„ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

gets_s() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•œ ์ž…๋ ฅ์ด ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋จ

 

 

 

 

+ ์ฐธ๊ณ 

https://marell.tistory.com/1