직접 실험해보니 "%[\n]s"에서 "%[\n]"까지만 서식 지정자로 인식하고 "s"는 그냥 문자로 취급해서가 아닐까 싶습니다. 코드에서 s를 지우고 실행하니 s가 없어지지 않고 잘 출력됩니다.
추가로 위 코드에서 trash를 쓰지 않고 두 번째 scanf의 맨 앞에 공백 문자를 넣어도 잘 실행되고, 개인적으로 이쪽이 더 편하다는 내용을 덧붙이고 싶습니다.
4458번 - 첫 글자를 대문자로
@dlaud5379 실제로 문제 풀때는 trash를 안쓰고 풀긴 했습니다만 trash를 scanf 받을때 %[\n]으로만 받으니까 잘 되네요
감사합니다!!
댓글을 작성하려면 로그인해야 합니다.
cdt416z 4년 전
문제 자체는 간단했고, scanf(" %[^\n]s", line); 를 통해서 띄어쓰기로 버퍼를 비우고 받아서 정답은 맞췄습니다.
밑에 있는 코드는 그 전에 풀었는데 틀렸다가 나와서 보니까
이렇게 입력을 넣으면
이렇게 스몰 s 만 넣으면 젤 앞이 사라지더라고요
왜 s만 이런 일이 벌어지는지 궁금해서 올려봅니다.