inflearn logo
강의

講義

知識共有

ホン・ジョンモのついていきながら学ぶC言語

6.1 while反復ループでscanf()の戻り値を使用する

status 값이 어떻게 0 or 1 만 나오게 됐는지 모르겠습니다.

338

godgodgod96

投稿した質問数 4

0

status= scanf("%d", &num);

while (status == 1)

{이하생략}

 

에서 status 라는 값은 그냥 우리가 변수를 지정한 것인데 num의 아무수(가령 25)를 입력해주었으면 25라고 /*저장*/이 되어야 된다고 생각하는데

 

실상은 숫자 1개가 들어왔다는 의미에서 1로 /*저장*/이 됩니다. 다시 말씀드리지만 status라는 변수는 그냥 우리가 임의로 만든 int 값 아닌가요?

 

왜 갑자기 숫자가 들어왔다는 의미에서 1, 숫자값이 들어오지 않았다는 의미에 0. 을 표현하게 되었는 지 모르겠습니다.(+ 저장이라는 표현이 맞는 표현인지도 잘 모르겠습니다.)

감사합니다.

c

回答 2

0

subak

status = scanf("%d", &num)에서 숫자를 입력하면

입력한 숫자는 num 변수로 저장되고

status는 int값이 들어왔으니 true로 1을 반환받았기 때문에

아래 while 반복문이 가능하게 된걸까요?

 

강의 다시 들으니 status가 int이기 때문에 그냥 int 변수 1개가 들어와서 1로 되었다는 말씀 같아요. 문자였으면 int값이 아니기 때문에 0인거죠?

0

kangminchul

안녕하세요 :)

status는 입력하신 값을 입력하는 것이 아니라,

scanf 함수의 반환값을 저장합니다.

 

status = scanf("%d", &num);

 

scanf함수가 올바르게 입력되었을 때에 1을 반환하기 때문에

while (status ==1 ) 같이 코드를 작성한 것입니다.

 

질문자님 말씀대로 status 변수에 특정 값을 입력받고 싶었다면 아래와 같이 입력받았을 겁니다 :)

 

scanf("%d", &status);

 

감사합니다.

 

 

Export template 안됨

1

27

2

완전히 똑같이 따라해도 exe파일이 안만들어져서 실행이 안됩니다.

1

56

3

main 함수에서 왜 int만 선언이 되는걸까요

1

57

2

8비트 2진수 변환시 왜 1을 더해야하나요?

1

55

2

혹시 강의를 빠르게 수강하려면 어디서부터 듣는게 좋을까요?

1

49

1

프로토타입과 함수간의 인자 불일치

1

73

2

12.12 헤더 관련 질문

1

60

2

Visual Studio Community 2026 사용 문의

1

138

2

Q. 15:30, 부호가 있는 8비트 정수 질문

1

61

2

getchar(), putchar()

1

94

3

강의자리ㅛ

1

80

2

비주얼스튜디오코드로 공부해도 상관없나요?

1

114

2

소스파일안에 여러 파일

1

76

2

F5와 F7의 차이

1

79

2

c = TWO * (a+b); 에서 a와 b는?

1

59

2

; 세미콜론을 붙이는 기준에 문의

1

70

1

Step over 기능 문의

1

53

2

2.6 강의 따옴표 출력 규칙 문의

1

76

2

int main 함수 관련 오류 문의

1

67

2

13.4 words[0]

0

61

2

11.7 함수를 구현해 봤습니다.

1

62

2

11.6 직접 strcmp와 strncmp를 구현해 보았습니다.

1

65

2

11.6 my_strcat과 my_strncat을 구현해봤습니다.

1

53

2

11.6 fit_str함수를 구현해 봤습니다.

1

54

2