C언어를 사용해보면 출력뿐만 아니라 입력을 하는 함수도 물론 존재합니다.
우리가 오늘 배워볼 함수는 scanf 라는 함수입니다.
scanf
printf 와 scanf를 헷갈리는 분들이 많으신데요.
간단히 복합기를 생각해봅시다.
복합기에는 출력 기능이 있고, 스캔을 통한 입력 기능이 있습니다.
말그대로 프린트는 출력, 스캔은 입력이라는 느낌을 가지고있죠.
scanf 함수의 사용법은 printf와 비슷하지만 부분부분 다르기때문에 조금 유심히 보셔야 합니다.
간단한 예제로 기본적인 scanf 함수의 사용법을 알아봅시다.
scanf 예제
#include <stdio.h>
int main( )
{
int a; // 정수형 변수 a 선언
float b; // 실수형 변수 b 선언
double c; // 실수형 변수 c 선언
char d; // 문자형 변수 d 선언
char e;
printf("정수를 입력하세요 : ");
scanf("%d", &a); // 정수형 변수 a의 입력 (&는 주소 연산자라고 하여 후에 설명합니다.)
printf("float형 실수를 입력하세요 : ");
scanf("%f", &b); // 실수형 변수 b의 입력
printf("double형 실수를 입력하세요 : ");
scanf("%lf", &c);
printf("문자를 입력하세요 : ");
scanf("%c", &d);
printf("문자열을 입력하세요 : ");
scanf("%s", &e);
printf("a = %d", a);
printf("b = %f", b);
printf("c = %lf", c);
printf("d = %c", d);
printf("e = %s", e);
printf("정수 > 실수 > 실수 > 문자 > 문자열 순으로 입력하세요 : "); // 이 부분은 직접 해보시기 바랍니다.
scanf("%d %f %lf %c %s", &a, &b, &c, &d, &e);
printf("%d %f %lf %c %s", a, b, c, d, e);
return 0;
}
scanf는 형식지정자를 printf와 동일한 구조로 이용하지만 변수를 지정하는 방법은 조금 다릅니다.
& 이것을 C에서는 주소 연산자라고 하여 변수가 가지고있는 주소를 표현합니다.
그래서 scanf문은 "~~에 있는 A라는 상자에 내가 주는것 넣어라" 라는 느낌으로 보시면 되겠습니다.
입력예제
정수를 입력하세요 : 20
float형 실수를 입력하세요 : 2.5
double형 실수를 입력하세요 : 3.5
문자를 입력하세요 : A
문자열을 입력하세요 : ABCD
출력결과
a = 20
b = 2.5
c = 3.5
d = A
e = ABCD
계속하려면 아무 키나 누르십시오 . . .
위 예제는 정수, 실수, 문자의 입력을 실행하고, printf를 이용해 우리가 입력한 값을 확인할 수 있도록 한 예제입니다.
예제를 모두 작성하신분들은 직접 입력을 해보세요!
실행을 시키신 뒤에 무엇을 해야할지 당황하지 마시고 커맨드 창에서 입력을 하는것입니다.
그리고 입력을 해보신 분들은 아시겠지만 입력이 자료형과 다르다면 이상현상을 일으키니 주의하세요.
자 우리가 배운 간단한 scanf를 이용해 연습을 해봅시다.
조금 사고력을 요하는 문제를 넣어보았습니다.
연습문제
1. 정수형 변수, 실수형 변수, 문자형 변수를 모두 이용해 각각 한번씩 입출력을 해봅니다.
2. 정수형 변수에 실수를 입력하고 결과를 확인해보세요.
3. 아스키 코드를 이용해 정수형 변수에 A를 입력해 확인해보세요.
4. 정수형 변수 두개를 선언해 각각 72, 105를 입력해 문자형 출력을 이용해 확인해보세요.
답안
'Develop > C 언어' 카테고리의 다른 글
[4 -1] 연산자? - 산술연산자! (2) | 2015.09.13 |
---|---|
간단히 짚고 넘어가는 C언어 부분정리 (3) | 2015.09.11 |
[알아야 할것] 1. 올바른 변수명 (0) | 2015.09.10 |
[2] 정수? 실수? 자료형과 변수 (1) | 2015.09.08 |
[1] C언어의 기본, 표준 출력 함수 printf (3) | 2015.09.05 |