C 언어에서 기본적으로 사용하는 입력 함수는 scanf() 함수입니다.

scanf() 함수는 키보드로부터 입력받은 값을 변수에 저장하는 함수입니다.

scanf() 함수의 사용법은 다음과 같습니다.

scanf("형식 지정자", &변수1, &변수2, ...);


scanf() 함수는 printf() 함수와 유사하게 형식 지정자를 사용하여 입력받을 값의 타입을 지정합니다.

이 때, scanf() 함수는 변수의 주소를 전달해야 합니다.

따라서 변수 앞에는 & 기호를 붙여야 합니다.

예를 들어, scanf("%d", &num)은 키보드로부터 입력받은 값을 num 변수에 저장하라는 의미입니다.

아래는 scanf() 함수를 사용하여 정수와 실수를 입력받고, 입력받은 값의 합을 출력하는 예시 코드입니다.

 

#include <stdio.h>

int main() {
    int num1, num2;
    float fnum;

    printf("정수 2개와 실수 1개를 입력하세요: ");
    scanf("%d %d %f", &num1, &num2, &fnum);

    printf("입력받은 값: %d, %d, %.2f\n", num1, num2, fnum);
    printf("합계: %d\n", num1 + num2 + (int)fnum); // fnum을 정수형으로 형변환하여 더합니다.

    return 0;
}

 

위 코드에서 %d, %f와 같은 형식 지정자를 사용하여 입력받을 값의 타입을 지정합니다.

scanf() 함수는 &num1, &num2, &fnum과 같이 변수의 주소를 전달합니다.

위 코드에서는 입력받은 값의 합을 출력하기 위해 num1과 num2는 정수형으로, fnum은 실수형으로 입력받았습니다.

fnum은 실수형으로 입력받았지만,

출력할 때는 소수점 이하 둘째 자리까지만 출력하기 위해 %.2f와 같은 형식 지정자를 사용하였습니다.

scanf() 함수는 gets() 함수와 fgets() 함수와 같이 보안 문제로 인해 사용을 권장하지 않는 함수입니다.

대신, fgets() 함수와 sscanf() 함수를 사용하여 안전하게 문자열을 입력받고 형식 지정자를 사용하여 파싱할 수 있습니다.