inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

독하게 시작하는 C 프로그래밍

문자, 정수 입력과 개행문자 제거

scanf("%d\n") 의미

2

코해

작성한 질문수 16

0

강의를 여러번 봐도 이 부분에 대한 설명이 이해가 안되어서 되도록이면 자제했던 AI의 도움을 받았습니다.

그 결과 알아낸 내용은 다음과 같습니다.

scanf()에서 "%d\n" 의 의미는
“모든 공백(스페이스, 탭, 개행)을 계속 건너뛰고,
그 다음 ‘공백이 아닌 입력’이 나올 때까지 기다려라”
입니다.

그러니까 엔터를 치면 또 공백이 입력되니까 계속 대기상태가 되는 겁니다. 이 부분은 강사님 설명이 많이 부족했다고 생각합니다.

여러 강의들을 보면서 느끼는 건데, 자부심이 상당하신듯 한데 그게 지나쳐 거만함이 자주 드러나는 것 같습니다. 또 이런 성향이 귀찮은듯 툭툭 내뱉는 말투로도 자주 표현이 되는 것 같고요.

수강자 입장에서 거슬리지만, 그런 성향이 불성실한 강의로 이어지지만 않으면 괜찮습니다.


c 컴퓨터-구조 assembly-language vc++

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 코해님.

scanf 함수에서의 "%d\n" 형식에 대한 이해에 대해 궁금한 점이 생기셨군요. 해당 문제에 대한 설명이 강의를 통해 충분히 이해하기 어려운 부분이 있는 것 같습니다. 기본적으로 scanf("%d\n", &input);는 모든 공백 문자 (스페이스, 탭, 개행문자 등)를 건너뛰고, 다음 공백이 아닌 입력이 나올 때까지 기다리는 방식으로 작동합니다. 따라서 %d로 정수 입력 후, \n을 입력하면 공백이 입력됨으로써 계속 대기 상태가 됩니다. 이는 %d 형식 지시자가 정수를 한 번 읽고 그 이후의 모든 공백 입력을 기다리기 때문입니다.

아래에 더 유사한 질문과 답변을 참고하실 수 있습니다. 강사님의 설명과 함께 보시면 이해하는 데 도움이 될 것입니다.

  1. scanf(“%d\n”, &input) 때문에 입력 후 엔터를 눌러도 프로그램 멈춤 현상 - 질문에서는 "%d\n" 형식의 동작 원리에 대해 설명합니다. 어떤 이유로 프로그램이 대기 상태로 머무는지에 대해 자세히 확인할 수 있습니다.

  2. scanf_s 사용 시 개행 문자가 입력 버퍼에 남아 있는지 궁금합니다 - 이 질문은 여러 개의 scanf가 연달아 사용될 때 입력 버퍼에 남는 \n의 발생과 그로 인해 생길 수 있는 문제들에 대해 다룹니다.

  3. scanf를 통해 받는 입력에서 공백 문자가 어떻게 처리되는지 궁금합니다 - 특정 형식의 입력을 처리할 때, 입력 후 남는 개행 문자의 처리 방식에 대해 논의합니다.

질문 내용을 보면서 코해님뿐만 아니라 다른 수강생 분들도 겪을 수 있는 혼란을 이해하게 되었습니다. 만약 강의 내용 외에도 도움이 필요하시다면 언제든지 추가로 질문 바랍니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

주소 연산자(&) 간접 지정자(*) 반대 개념

0

23

1

Virtual Memory, Memory, Memory mapping tables

0

43

1

샘플코드 출력 오류 발생 질문드립니다

0

59

2

값의 교환에 사용되는 변수의 위치.

0

83

2

메모리 비교에 관한 질문

0

78

2

문자열 Null

0

60

1

C, C++

0

84

2

문자열 입출력 코드 에러

0

58

2

선생님! 120화 2분 50초 질문입니다.

0

65

1

caller 가 메모리 할당 해제를 할 때의 문제점 질문

0

60

2

단축키 맞는지 여부 문의드립니다.

0

58

2

문자열을 사용하는 이중 포인터에 대하여 질문합니다

0

62

1

char 포인터 변수의 크기에 대하여 제가 이해한 것이 맞을까요

0

77

2

용어 설명 필요

0

55

2

stdin, stdout

0

69

2

필수 실습 (최댓값을 반환하는 함수)

0

90

2

아......ㅠㅠ

0

97

2

버퍼 내 엔터

0

70

1

2진수 뺄셈에서 carry-out

0

110

2

union 식별자는 실무에서 보통 어디에서 사용하나요?

0

76

2

필수실습문제 공부법 (진도 vs 복습)

0

100

2

예제파일 다운로드

0

75

2

Visial Studio Code 를 설치해서 사용해도 수업을 따라가는데 지장이 있나요?

0

114

3

연산자 기본이론 강의 질문

0

58

2