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를 통해 출력될 수 있다.
'BOX-IT > C++' 카테고리의 다른 글
[C++] ‘strcpy’ was not declared in this scope 해결방법 (0) | 2022.04.11 |
---|---|
C언어에서 '100< X <200' 은 잘못된 표현이다. (0) | 2022.04.10 |
[C++] #include <stdio.h>는 뭐고, 왜 쓰는 걸까? (8) | 2022.04.04 |
C 포인터 개념을 소설로 쉽게 써서 정리한 글 (0) | 2022.03.22 |
[C++] 컴파일, 컴파일러, 바이트코드(바이너리코드)는 무슨 뜻일까? (0) | 2022.03.01 |