함수 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언어) scanf() 함수  (0) 2016.02.01
(C언어) 구조체의 포인터  (0) 2016.02.01
(C언어) 구조체 배열  (0) 2016.02.01
(C언어) 구조체 변수를 필드로 가지는 구조체  (0) 2016.02.01
Posted by 살레시오

댓글을 달아 주세요