함수 scanf()는 (보통은 키보드로) 입력을 받아들이는 기능을 수행하면 stdio.h 에 정의되어 있다. 만약 하나의 정수를 입력받아서 a라는 변수에 저장하고 싶다면 다음과 같이 해야 한다.


scanf(“%d”, &a);


이렇게 하면 사용자로보터 숫자 입력을 받아서 변수 a에 저장한다. ‘&’는 주소 연산자로서 포인터를 설명하는 장에서 자세히 알아볼 것이고 여기에서는 scanf()함수에서는 변수 앞에 &를 붙여야 한다고만 알아두고 넘어가자.


ex02-04.c

#include <stdio.h>

int main() {
int ia;
printf("input an integer :");
scanf("%d", &ia);
printf("your input is %d.",ia);
}

실행 결과

input an integer :1234
your input is 1234.


실수를 입력받을 때는 %f (float형) 나 %lf (double 형) 지시자를 사용하면 된다.


ex02-05.c

#include <stdio.h>

int main() {
float fa;
printf("input a real number :");
scanf("%f", &fa);
printf("your input is %f.", fa);
}

실행 결과

input a real number :1.23
your input is 1.230000.


두 개 이상의 입력을 한 번에 받으려면 다음과 같이 하면 된다.


ex02-06.c

#include <stdio.h>

int main() {
int ia, ib;
printf("input two integers :");
scanf("%d %d", &ia, &ib);
printf("your inputs are %d and %d.", ia, ib);
}

실행 결과

input two numbers :11 22
your inputs are 11 and 1.


여기서 scanf() 함수 내에서 "%d %d"와 같이 %d와 %d가 공백문자로 구분되어 있다면 사용자가 숫자르 입력할 때에도 공백문자로 구별해야 한다. 만약


scanf("%d,%d", &ia, &ib);


와 같이 콤마(,)로 구분되어 있으면 사용자도 11,22 와 같이 콤마로 구별해서 숫자를 입력해야 한다. 그렇지 않으면 오동작이 일어난다.

'프로그래밍언어.Lib > C,C++' 카테고리의 다른 글

1.2 C 언어 소개  (0) 2016.03.04
1.1 프로그래밍 개요  (0) 2016.03.04
(C언어) 구조체의 포인터  (0) 2016.02.01
(C언어) 구조체 배열  (0) 2016.02.01
(C언어) 구조체 변수를 필드로 가지는 구조체  (0) 2016.02.01
Posted by 살레시오

댓글을 달아 주세요