11721번 - 열 개씩 끊어 출력하기
a[10][11]
while(feof(stdin)) { fgets(a[i], 11, stdin); i++; }
for (int k = 0; k < i-1;k++) printf("%s\n", a[k]);
로 작성했을 때,
하단 코드의 6번째 줄에서 11을 10으로 바꾸면 a의 각 행에 문자가 9개씩밖에 저장이 안되요. 왜 이러는 걸까요??
그래서 10-->11로 바꾸면 BaekJoonOnlineJudge를 입력했을 때, 밑에 출력할 때
BaekJoonOn
LineJudge
이렇게 제대로 출력되지만 조사식을 통해 확인해보니 a[0][11]와a[1][0]에는 "l"이 중복 저장되어 있더군요.
그렇다면 왜 printf에서 a[0]을 출력할 때 BaekJoonOnl이 아닌 BaekJoonOn까지만 출력되는 것일까요??
fgets의 작동원리좀 알려주시면 감사하겠습니다.
댓글을 작성하려면 로그인해야 합니다.
js9609 7년 전
a[10][11]
while(feof(stdin))
{
fgets(a[i], 11, stdin);
i++;
}
for (int k = 0; k < i-1;k++)
printf("%s\n", a[k]);
로 작성했을 때,
하단 코드의 6번째 줄에서 11을 10으로 바꾸면 a의 각 행에 문자가 9개씩밖에 저장이 안되요. 왜 이러는 걸까요??
그래서 10-->11로 바꾸면 BaekJoonOnlineJudge를 입력했을 때, 밑에 출력할 때
BaekJoonOn
LineJudge
이렇게 제대로 출력되지만 조사식을 통해 확인해보니 a[0][11]와a[1][0]에는 "l"이 중복 저장되어 있더군요.
그렇다면 왜 printf에서 a[0]을 출력할 때 BaekJoonOnl이 아닌 BaekJoonOn까지만 출력되는 것일까요??
fgets의 작동원리좀 알려주시면 감사하겠습니다.