11.3 실수 입력받기

지금까지 정수를 입력받아서 변수에 저장했습니다. 이번에는 실수를 받아서 변수에 저장해보겠습니다. 다음 내용을 소스 코드 편집 창에 입력하세요.

scanf_real_number.c

#define _CRT_SECURE_NO_WARNINGS    // scanf 보안 경고로 인한 컴파일 에러 방지
#include <stdio.h>

int main()
{
    float num1;

    printf("실수를 입력하세요: ");
    scanf("%f", &num1);    // 실수를 입력받아서 변수에 저장

    printf("%f\n", num1);    // 변수의 내용을 출력

    return 0;
}

소스를 컴파일하여 실행한 뒤 1.1을 입력하고 엔터 키를 누르세요.

실행 결과

실수를 입력하세요: 1.1 (입력)
1.100000

실수를 입력받을 것이므로 변수는 float로 선언해주고, scanf에 서식 지정자로 %f를 설정해줍니다. 즉, 입력받고자 하는 자료형에 맞게 변수를 선언하고, 서식 지정자도 맞춰줍니다. 만약 정수 1을 입력하더라도 서식 지정자가 %f이고 float 변수에 저장되므로 1.0이 됩니다. 각자 여러가지 값을 넣어보기 바랍니다.

여기서 변수를 double로 선언했다면 scanf에는 서식 지정자로 %lf를 넣고, long double로 선언했다면 %Lf를 넣습니다(doubleprintf로 출력할 때 %f를 써도 되지만 scanf%lf를 써야 합니다).

double num1;
scanf("%lf", &num1);    // 자료형이 double일 때는 %lf

long double num2;
scanf("%Lf", &num2);    // 자료형이 long double일 때는 %Lf