fgets와 scanf, strlen에서의 차이
2019. 5. 18. 20:37ㆍPL/C++
fgets는 공백을 포함한 문자열 전체를 받아오고, 개행을 만나면 입력을 중단하고, scanf는 공백이나 개행을 만나면 입력을 마친다
둘의 차이는 fgets는 문자열 마지막에 \n을 포함해서 저장한다. 따라서 a를 입력하고 나서 두 배열의 길이를 비교해보면 fgets로 받은 문자열의 길이는 2, scanf로 받은 문자열의 길이는 1이 된다.
https://github.com/surinoel/boj/blob/master/1718.c
fgets로 받는 buf는 \0을 포함하여 \n까지 공간을 만들어야 한다. 안한다면 런타임 에러가 난다.
'PL > C++' 카테고리의 다른 글
주석으로 쌓여진 내용에 다시 주석을 달 경우 (0) | 2019.05.19 |
---|---|
gets의 취약점 (0) | 2019.05.19 |
function의 주소를 넘길 때 (0) | 2019.05.15 |
PI 상수를 사용하는 방법 (0) | 2019.04.29 |
EOF까지 한 번에 입력받기 (0) | 2019.04.25 |