프로그래밍언어.Lib/C,C++
(C언어) scanf() 함수
살레시오
2016. 2. 1. 18:45
함수 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 :1234your 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.23your 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 22your inputs are 11 and 1. |
여기서 scanf() 함수 내에서 "%d %d"와 같이 %d와 %d가 공백문자로 구분되어 있다면 사용자가 숫자르 입력할 때에도 공백문자로 구별해야 한다. 만약
scanf("%d,%d", &ia, &ib); |
와 같이 콤마(,)로 구분되어 있으면 사용자도 11,22 와 같이 콤마로 구별해서 숫자를 입력해야 한다. 그렇지 않으면 오동작이 일어난다.