inflearn logo
강의

Course

Instructor

C Programming - From Basics to Game Development

Project (Second Half)

66줄의 getchar();에 대한 자세한 설명부탁드려요 선생님 ㅠㅠ

Resolved

293

cysung124091

15 asked

1

getchar();는 문자를 입력하는 함수로 알고 있는데

그게 어떤 원리로 scanf에 입력한 줄바꿈문자를 flush 처리할 수 있는건지 자세한 설명 부탁드립니다ㅜㅠ

또, 이 프로젝트에서 그 문구가 있을때와 없을때의 차이는 뭔가요?

c

Answer 1

1

nadocoding

안녕하세요?

입력을 받게 되면 입력값들은 어딘가 줄을 서게 됩니다. scanf 에서는 입력값들을 받아서 처리를 하게 되고, getchar 또한 한자씩 입력 받아서 처리를 하게 됩니다. 예문에서는 "엔터"값을 따로 처리하기 위해 scanf 에서는 엔터 직전까지만 처리를 합니다. 그럼 엔터는 계속 줄을 서 있게 되는 것이지요. 이것을 getchar 에서 받아서 처리를 하는 겁니다. 실제로는 char c = getchar(); 와 같이 하여 c 라는 변수에 엔터를 저장하곤 하지만 예문에서는 그저 엔터를 무시하기 위함이니 따로 변수에 넣지는 않았어요, 그럼 쉽게 줄을 서 있던 엔터를 데려다가 어딘가 갖다놓은 뒤 줄을 비우는 것이지요. 코드에 이 부분이 없다면 엔터가 남아 있어서 사용자가 따로 입력 안했는데도 엔터가 입력되는, 가령 프로그램 종료 대기 구문에서 엔터를 치지 않아도 바로 종료가 될 수가 있답니다.

감사합니다.^^

안녕하세요 7장 포인터에 관해 질문드립니다.

0

63

1

8-8 연장전 / 소스코드 공유해드려요. 참고하세요!

0

64

0

섹션6. 프로젝트 소스코드 올려드려요.

0

94

1

영상속에서 배운 코드들을 Git Repository에 올려두될까요?

0

79

1

경찰서 조서 프로젝트 문의

0

104

1

경찰관 조서 프로젝트

0

142

1

scanf

0

92

1

제대로 작성한것 같은데 빌드가 않됩니다.,

0

170

1

구문 오류 C2059

0

400

1

컴파일 시 fatal error C1010 발생

0

284

1

반환값이 없는 함수

0

215

1

반올림 되는건가요?

0

253

1

맥으로수강

0

193

1

10-2

0

257

1

질문이 있습니다

0

342

1

3-3 for 반복문 ++i 일때 질문입니다.

0

244

1

6-4(배열 파트 '문자 vs 문자열') sizeof 예제 다르게 출력되는 분들 참고하세요.

1

411

0

함수 선언과 정의를 동시에 해도 되나요?

0

1076

1

빌드오류가 있다고 나오고, 지정된 파일을 찾을 수 없다고 오류가 나옵니다..

0

403

1

안녕하세요 좋은 강의와 책 감사드립니다!! 다름이 아니라 명령어를 실행시켰을 때 저런식으로 나와서 질문드립니다

0

934

0

질문있습니다!

0

378

1

질문드립니다

0

387

1

scanf_s(" %d", &answer); 이후 바로 종료

0

312

0

질문 드립니다.

0

431

1