소개
hello world에 살고 있는 어떤 청년의 성공 스토리
게시글
고민있어요
2021.03.22 18:21
나만은 연습문제 안습풀이
- 1
- 0
- 235
질문&답변
2021.02.13
버퍼에 관한 질문 (수정본)
어디선가 C++이 C보다 쉬우니까 C++먼저 배우고 C배우는 것이 좋을 것이라는 말을 들어서 그렇게 됬네요 (웃음). 해당챕터까지 봐서는 C++이 C보다 훨~씬 어려운 것 같아요 ㅋㅋㅋ... (객체지향때문인가..) 잘 이해하다가 버퍼에 걸려서 질문을 드리게 되네요ㅋㅋ. 아무튼 화이팅하겠습니다! 감사합니다 joy님~!
- 2
- 6
- 651
질문&답변
2021.02.13
버퍼에 관한 질문 (수정본)
joy님 소중한 시간 내어 답변해주셔서 정말 감사합니다! 그러게요... 디버깅하면 대부분의 문제를 해결할 수 있는데, 부주의했습니다! 1번 질문은 어쩌다보니 어제 시도해보고 안되니까 선뜻 질문으로 올렸던 것 같습니다 ㅋㅋ;;; (꾸벅..) 답변 4번, 바로 위에 "%는 꺼내지지 않았습니다. rows와 cols는 첫번째 while문에서 각각 3과 2 값으로 입력이 됐었으므로 rows cols는 변동없이 3 과 2 값이 유지됩니다. 이번에 버퍼 앞에 % 가 있는지라 입력을 못받아서 수정이 안됐습니다." 이 부분때문에 먼저 버퍼에 들어가 있는 '#', '빈칸', '\n'순으로 (# 3 2), (빈칸 3 2), (\n 3 2)의 경우의 수가 있겠구나 생각했던 것 같아요. 다시 말하여, 이 문제는 (# 3 2)의 while문이 끝나는 시점에서 버퍼에는 ('빈칸', '\n')이 남아있고, 빈칸이 출력되는 두 번째 while문에서 '빈칸'은 c = getchar로 c에 들어가지만, \n는 whitespace이니까 scanf(%d )에서 거절되고, 버퍼로 다시 돌아가지 않고 사라지게 됩니다. 이후 scanf을 통해 "% 1 2"를 입력 받으니 버퍼는 ('%', 1 2)가 남습니다. 여기서! %는 whitespace가 아니니까 scanf(%d)에서 거절되도 다시 버퍼로 들어가게 됩니다. 그래서 세 번째 while문에서 %는 다시 버퍼에서 c = getchar에 의해 c로 들어가게 되고, 1 2는 scanf(%d %d)로 각각 들어가 잘 출력된 것이군요! (사진) 나름 어제 많은 시간동안 어떻게하면 잘 질문할 수 있을까 고민하면서 이미지도 만들어보고 했는데, 역시 글로는 표현에 제한이 생기네요... 덕분에 개념 정리 잘하고 다음 챕터로 넘어갑니다! 감사합니다~!!!
- 2
- 6
- 651
질문&답변
2021.02.12
(!isspace(c) && !line_flag) 트루??
https://www.inflearn.com/questions/150034
- 0
- 4
- 257
질문&답변
2021.02.12
질문) m1n_q님의 질문의 답변, 이해했는지 확인하고 싶어요.
질문 게시판에 다시 올리도록 하겠습니다. 설 연휴인데, 소중한 시간 내주셔서 검토해주신 정모 선생님에게 진심으로 감사드립니다.
- 0
- 2
- 255