c 언어/c 표준 라이브러리(Standard C Library)

stdio.h 개요 및 기본 입출력 함수 `printf`, `scanf`

임베디드 친구 2025. 2. 2. 11:00
반응형

stdio.h(Standard Input Output Header)는 C 언어에서 표준 입출력 기능을 제공하는 헤더 파일입니다. 이 헤더에는 파일 입출력 및 콘솔 입출력을 수행할 수 있는 다양한 함수들이 포함되어 있습니다. 오늘은 stdio.h의 개요와 기본적인 콘솔 입출력 함수인 printfscanf에 대해 살펴보겠습니다.

1. stdio.h 개요

C 언어에서 표준 입출력 기능을 수행하기 위해 <stdio.h> 헤더 파일을 포함해야 합니다. 이 헤더는 표준 입력(stdin), 표준 출력(stdout), 표준 오류(stderr)과 관련된 여러 함수를 제공합니다.

주요 기능:

  • 콘솔 출력: printf, puts, putchar
  • 콘솔 입력: scanf, gets, getchar
  • 파일 입출력: fopen, fclose, fread, fwrite

2. printf 함수 (출력)

2.1 printf 개요

printf 함수는 콘솔 화면에 데이터를 출력할 때 사용됩니다. 다양한 서식 지정자를 지원하여 문자열, 정수, 실수 등 다양한 타입의 데이터를 출력할 수 있습니다.

2.2 printf 함수의 기본 사용법

#include <stdio.h>

int main() {
    printf("Hello, World!\n");
    return 0;
}

위 코드를 실행하면 콘솔에 Hello, World!가 출력됩니다.

2.3 printf 서식 지정자

printf 함수에서는 서식 지정자를 사용하여 다양한 타입의 데이터를 출력할 수 있습니다.

서식 지정자 데이터 타입
%d 정수 (int)
%f 실수 (float, double)
%c 문자 (char)
%s 문자열 (char 배열)
%x 16진수 정수
%o 8진수 정수
%p 포인터 주소

2.4 printf 예제

#include <stdio.h>

int main() {
    int age = 30;
    float height = 175.5;
    char initial = 'A';
    char name[] = "홍길동";

    printf("나이: %d\n", age);
    printf("키: %.1f cm\n", height);
    printf("이니셜: %c\n", initial);
    printf("이름: %s\n", name);

    return 0;
}

출력:

나이: 30
키: 175.5 cm
이니셜: A
이름: 홍길동

3. scanf 함수 (입력)

3.1 scanf 개요

scanf 함수는 키보드로부터 입력을 받을 때 사용됩니다. printf와 유사하게 서식 지정자를 이용하여 다양한 데이터를 입력받을 수 있습니다.

3.2 scanf 기본 사용법

#include <stdio.h>

int main() {
    int age;
    printf("나이를 입력하세요: ");
    scanf("%d", &age);
    printf("입력한 나이: %d\n", age);
    return 0;
}

3.3 scanf 사용 시 주의사항

  1. 변수의 주소를 & 연산자를 사용하여 전달해야 합니다. (단, char 배열은 예외)
  2. 공백, 개행 문자가 입력값에 영향을 줄 수 있습니다.
  3. 여러 개의 입력을 받을 때 공백이나 개행이 구분자로 사용됩니다.

3.4 scanf 예제

#include <stdio.h>

int main() {
    int age;
    float height;
    char name[30];

    printf("이름을 입력하세요: ");
    scanf("%s", name);
    printf("나이를 입력하세요: ");
    scanf("%d", &age);
    printf("키를 입력하세요: ");
    scanf("%f", &height);

    printf("이름: %s, 나이: %d, 키: %.1f cm\n", name, age, height);

    return 0;
}

출력 예:

이름을 입력하세요: 홍길동
나이를 입력하세요: 25
키를 입력하세요: 172.5
이름: 홍길동, 나이: 25, 키: 172.5 cm

4. printfscanf 활용 예제

다음은 printfscanf를 활용하여 간단한 계산기를 구현하는 예제입니다.

#include <stdio.h>

int main() {
    int num1, num2;
    char operator;

    printf("연산을 입력하세요 (예: 3 + 5): ");
    scanf("%d %c %d", &num1, &operator, &num2);

    if (operator == '+') {
        printf("결과: %d\n", num1 + num2);
    } else if (operator == '-') {
        printf("결과: %d\n", num1 - num2);
    } else if (operator == '*') {
        printf("결과: %d\n", num1 * num2);
    } else if (operator == '/') {
        if (num2 != 0)
            printf("결과: %.2f\n", (float)num1 / num2);
        else
            printf("0으로 나눌 수 없습니다.\n");
    } else {
        printf("잘못된 연산자입니다.\n");
    }

    return 0;
}

출력 예:

연산을 입력하세요 (예: 3 + 5): 3 + 5
결과: 8

5. 결론

stdio.h는 C 언어에서 표준 입출력을 담당하는 핵심적인 헤더 파일입니다. 특히 printfscanf는 기본적인 입출력 기능을 수행하는 가장 중요한 함수입니다. 오늘 배운 내용을 바탕으로 다양한 입력과 출력을 직접 시도해 보세요!

반응형