인프런 커뮤니티 질문&답변

khb4435님의 프로필 이미지

작성한 질문수

홍정모의 따라하며 배우는 C언어

8.5 숫자와 문자를 섞어서 입력받기

5:25 초

해결된 질문

20.05.04 16:42 작성

·

153

0

지금 여기서 버퍼가 있는걸 없애주기 위해서 while(getcharo()!='\n') continue;를 한다라고 말씀하셨는데요

헷갈려서 제가 while문 사이에 printf("두개의 정수를 입력하세요");를 두었는데요 getchar과 scanf를 따로 보기위해서

일단 c=getchar에 #을 입력하면 버퍼엔 #과 \0가 남아있을텐데 일단 #을 불러드리고 

두개의 정수를 입력하세요: 2 2 그리고 여기서 getchar()!='\n'이 나오는데

지금 일단 큰 while문은 c에 #만 들어간상태 아닌가요? \0은 보지 않고요. 큰 와일문이 다 끝나고 그 이후에 \0가 들어가야하는데 큰 while문 조건에서 못들어가게되는거아닌가요?

이게 좀 헷갈립니다

장황하게 써서 제가 무슨말 하는건지 헷갈리시다면 댓글 부탁드립니다...ㅠㅠ

답변 2

0

홍길동님의 프로필 이미지

2021. 02. 11. 12:32

다음 사람을 위해서..)

글쓴이는 while 조건에 있는 while((c = getchar()) != '\n')에서 # + 엔터키(\n)을 누른 상태.

문자 '#'은 while((c = getchar()) != '\n')에서 읽어진 상태이고 나머지 문자 '\n'는 두 번째 while문의 continue부분에서 읽혀짐.

0

홍정모님의 프로필 이미지
홍정모
지식공유자

2020. 05. 05. 11:47

스스로도 이해하기 어려운 글을 다른 사람에게 읽어달라고 하는 것은 합리적인 행동이 아닙니다.

khb4435님의 프로필 이미지

작성한 질문수

질문하기