BOX-IT/C++

[C++] Scanf 함수의 정의와 사용 방법

Buang 2022. 3. 27. 12:50
반응형

scanf 함수는 입력을 받는 함수다.

입력을 받는 다는 게 잘 와닿지 않을 수 있어서

출력함수인 printf를 통해 입력을 받는다는 게 무슨

의미인지 설명하고자 한다.

 

#include <stdio.h>
int main()
{
	printf("Hello Wordl");
	return 0;
}

 

위의 코드를 실행 시키면

Hello Wordl가 출력된다.

즉 실행만 시키면 바로 Hello Wordl가 출력되도록

미리 코드를 짜놓은 거라고 볼 수 있다.

 

그런데 미리 입력한 게 출력되도록 나오는 게 아닌

사용자가 입력한 값이 출력되도록 나오게 하는 방법은 없을까?

 

예를 들자면 사용자가 30을 입력하면 30이 출력되도록 하는 거다.

50을 입력하면 50이 출력되게 할 수도 있을 것이다.

 

이해를 돕기 위해 아래 코드를 봐보도록 하자.

 

#include <stdio.h>

int main(){
	
    int a;
	printf("숫자를 입력해주세요. =");
	scanf("%d", &a); 

	prinf("당신이 입력한 숫자는 %d 입니다.", a);
	return 0;

}

 

 

못보던 녀석이 보인다.

바로 scanf다.

사용자가 입력한 대로 출력을 할 수 있도록 도와주는 것이 바로 scanf다.

 

scanf("%d", &a);  

를 해석해보자면 사용자한테 %d(정수형 값)을 받아서

&a 즉 a의 집에 저장해줘란 말이다.

a에 &를 붙이면 a가 살고 있는 곳 집의 주소를 가리키게 된다.

%d는 정수형 값이 들어올 예정입니다~를 알려주는 것이다.

가령 -1이나 100이나 0같은 숫자가 들어올 예정입니다같은 이야기다.

 

scanf("%d", &a);  

를 다시 요약해보자면 a가 살고 있는 집에

정수형의 숫자를 입력받으려고 합니다. 그러니 정수형 숫자를 입력해주세요.

그럼 제가 그 정수형 숫자를 a의 집에 저장해 둘게요. 라고 할 수 있다.

 

프로그램을 실행시키면 

 

'숫자를 입력하세요. =' 가 뜬다.

 

그리고 커서가 깜빡깜빡 거린다. 거기에 내가 30을 입력하면

 

'당신이 입력한 숫자는 30입니다.' 라고 뜬다.

30이란 값을 scanf를 통해 입력받아서 printf를 통해서 출력한 것이다.

 

 

 

결론: scanf는 입력을 받는 함수다. 

 

내가 30을 입력하면 30이 입력되서 prinft를 통해 출력될 수 있다.

 

 

 

반응형