본문 바로가기
코딩/C언어

#2 C언어 scanf 입력 함수 사용 방법

by zz! 2023. 11. 18.
728x90

C언어는 사용자로부터 데이터를 입력받고 출력하는 기능을 제공합니다. 이 중에서도 "scanf" 함수는 사용자로부터 키보드를 통해 데이터를 입력받는 데 주로 활용됩니다. 오늘은 "C언어 scanf 입력 함수 사용 방법"에 대해 포스팅을 해보겠습니다.

 

#2 C언어 scanf 입력 함수 사용 방법

 

목차

1. scanf 함수란?

2. scanf 함수의 기본 구조

3. scanf 함수 형식 지정자

4. scanf 함수 예제 코드

 

1. scanf 함수란?

키보드로부터 데이터를 입력받는 데 사용되는 함수입니다. 서식 지정자를 사용하여 입력을 받아들입니다. 여러 종류의 데이터를 키보드에서 읽어와서 지정된 변수에 저장합니다.

 

2. scanf 함수의 기본 구조

"scanf" 함수의 기본 구조는 다음과 같습니다.

scanf("%d", &number);

scanf : 함수명

"%d" : 정수를 입력받을 때 사용되는 형식 지정자

&number : 입력받은 데이터를 number 변수에 저장한다.

 

3. scanf 함수 형식 지정자

"scanf" 함수는 입력받을 데이터의 유형을 지정하기 위해 형식 지정자를 사용합니다. 몇 가지 주요 형식 지정자는 다음과 같습니다.

"%d" : 정수 출력

"%f" : 부동 소수점 수

"c" : 문자

"%s" : 문자열

더보기

적절한 형식 지정자를 사용하는 것이 중요합니다. 잘못된 형식 지정자를 사용하면 예기치 않은 결과가 발생할 수 있습니다. 

 

1. 입력 구분과 버퍼

"scanf" 함수는 공백 문자(스페이스, 탭 등)을 기준으로 입력을 구분합니다. 여러 데이터를 입력 받을 때 각각을 공백으로 구분하여 입력합니다.

int num1, num2;
scanf("%d %d", &num1, &num2);  // 두 정수를 공백으로 구분하여 입력

 

2. 버퍼 오버플로우 방지

입력 버퍼 오버플로우를 방지하기 위해 'fgets' 함수 등을 사용하여 안전한 입력 처리 방법도 고려해야 합니다.

visual studio 에서 scanf 를 사용을 할 경우 보안 경고로 인해 컴파일 에러가 발생합니다.

그래서 맨 위에 

#define _CRT_SECURE_NO_WARNINGS 를 적어 주셔야 합니다.

dev-c++ 같은 경우는 작성을 안해도 정상적으로 컴파일이 됩니다.

 

4. scanf 함수 예제 코드

"scanf" 함수의 다양한 형식 지정자를 사용한 예제 코드입니다.

#include <stdio.h>

int main() {
    int integer;
    float floatingPoint;
    char character;
    char string[50];

    // 다양한 데이터 유형 입력받기
    scanf("%d", &integer);
    scanf("%f", &floatingPoint);
    scanf(" %c", &character);  // 공백 문자를 사용하여 이전 입력의 개행 문자를 소비
    scanf("%s", string);

    // 입력받은 값 출력
    printf("정수: %d\n", integer);
    printf("실수: %f\n", floatingPoint);
    printf("문자: %c\n", character);
    printf("문자열: %s\n", string);

    return 0;
}

 

관련 포스팅

 

#1 C언어 printf 출력 함수 사용 방법

C언어 프로그래밍에서 출력은 매우 중요한 역할을 하고 있습니다. 이를 담당하는 함수 중 가장 널리 사용되는 것이 "printf" 함수입니다. 이번 포스팅에서는 C언어의 'printf' 함수에 대해 자세하게

wsul.tistory.com

 

오늘은 C 언어의 "scanf" 함수를 사용하여 다양한 데이터 유형을 입력받는 방법과 주의사항을 알아보았습니다. 항상 올바른 형식 지정자를 사용하고, 입력 시 공백과 버퍼에 주의하시길 바랍니다. 여러분들에게 도움이 되는 "부상남"이 되겠습니다.

728x90