본문 바로가기
IT/C언어

[C언어] 표준 입출력 함수

by 장장구리 2024. 6. 17.
  1. 프로그램 실행의 시작과 종료
    • main 함수의 역할
    • 프로그램 실행 흐름
  2. 입력과 출력
    • gets_s 함수 사용
    • scanf_s 함수 사용
  3. 함수 사용
    • myfunc 함수 예시
    • 삼각형의 면적 구하기
  4. 다양한 자료형과 출력 방식
    • printf의 서식 지정자
    • 다양한 출력 예시
  5. 조건문 사용하기
    • if 조건문 예시
    • 조건에 따른 출력
  6. 결론
    • C언어 기초 개념 정리
    • C언어 학습의 중요성

 

 

C언어는 컴퓨터 프로그래밍의 기초를 배우는 데 유용한 언어입니다. 다양한 함수, 변수, 입력 및 출력 방식을 활용하여 여러 가지 프로그램을 구현할 수 있습니다. 이번 포스팅에서는 C언어의 기본적인 기능과 함께 간단한 프로그램들을 예시로 들어 설명하고자 합니다.

 

1. 프로그램 실행의 시작과 종료

C언어에서 프로그램 실행은 main 함수에서 시작합니다. 모든 C언어 프로그램은 main 함수가 존재해야 하며, 이 함수는 프로그램의 진입점 역할을 합니다. 프로그램이 시작될 때 운영체제는 main 함수를 실행하고, 프로그램이 종료될 때도 main 함수에서 종료됩니다.

#include <stdio.h>

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

위 코드에서는 "Hello, C language!"라는 문자열을 화면에 출력하고, main 함수는 0을 반환하면서 프로그램이 종료됩니다. return 0;은 프로그램이 정상 종료되었음을 나타내는 표준적인 방식입니다.

 

2. 입력과 출력

C언어에서 입력을 받는 방법과 출력을 하는 방법은 여러 가지가 있습니다. printf 함수는 출력을 담당하고, scanf와 gets 등의 함수는 입력을 받는 역할을 합니다.

(1) gets_s 함수 사용

#include <stdio.h>

int main() {
    char address[100];
    printf("당신의 주소를 입력하세요: ");
    gets_s(address);
    printf("당신의 주소는 %s입니다.\n", address);
    return 0;
}

gets_s는 C언어에서 사용자가 문자열을 입력할 때, 버퍼 오버플로우를 방지하기 위해 사용되는 함수입니다. 사용자는 자신의 주소를 입력하면, 프로그램은 해당 주소를 출력합니다. 다만, gets_s는 취약점이 있을 수 있어, 안전한 입력 방식을 사용해야 하는 점에 유의해야 합니다.

(2) scanf_s 함수 사용

#include <stdio.h>
int main()
{
    char name[20];
    printf("당신의 이름을 입력 하세요 : ");
    scanf_s("%s", name, 20);
    printf("당신의 이름은 %s입니다", name);
    return 0;
}​

scanf_s 함수는 scanf 함수의 보안 버전으로, 입력받을 변수의 크기를 명시하여 버퍼 오버플로우를 방지합니다. 위 코드에서는 사용자가 이름을 입력하면, 그 값을 출력하는 간단한 프로그램을 작성했습니다.

3. 함수 사용

C언어에서 함수는 코드의 재사용성을 높이고, 프로그램을 더 깔끔하고 효율적으로 만듭니다. 예를 들어, 두 개의 정수 값에 대해 사각형의 면적을 계산하는 함수는 다음과 같이 작성할 수 있습니다.

(1) myfunc 함수

#include <stdio.h>

int myfunc(int a) {
    return a * a;
}

int main() {
    int temp = myfunc(10);
    printf("10의 제곱은 %d입니다.\n", temp);
    return 0;
}

위 코드에서는 myfunc라는 함수를 정의하여 정수 값을 제곱하여 반환합니다. main 함수에서 이 값을 출력하여, 함수의 반환값을 활용하는 방법을 보여줍니다.

(2) 삼각형의 면적 구하기

#include <stdio.h>

float calcArea(int a, int b) {
    return a * b / 2.0;
}

int main() {
    int a = 10, b = 5;
    float area = calcArea(a, b);
    printf("삼각형의 면적은 %.2f입니다.\n", area);
    return 0;
}

이 프로그램은 삼각형의 밑변과 높이를 입력받아 면적을 계산하는 함수 calcArea를 구현한 예시입니다. 삼각형의 면적은 밑변과 높이를 곱한 후 2로 나누는 공식에 따라 계산됩니다.

4. 다양한 자료형과 출력 방식

C언어에서는 다양한 자료형을 사용하여 값을 저장하고, 이를 출력할 수 있습니다. printf 함수는 다양한 서식 지정자를 통해 출력할 수 있습니다.

#include <stdio.h>

int main() {
    int a = 5678;
    float pi = 3.14159;
    
    printf("십진수: %d\n", a);
    printf("16진수: %x\n", a);
    printf("실수: %f\n", pi);
    return 0;
}

위 코드에서는 printf 함수의 다양한 서식 지정자(% d, % x, % f)를 사용하여 정수, 16진수, 실수를 출력하는 예시입니다. % d는 정수 출력, % x는 16진수 출력, % f는 실수 출력에 사용됩니다.

5. 조건문 사용하기

조건문은 프로그램에서 특정 조건에 따라 다른 동작을 실행할 수 있도록 합니다. 예를 들어, 사용자가 입력한 값에 따라 특정 메시지를 출력하는 프로그램은 다음과 같습니다.

#include <stdio.h>

int main() {
    int year;
    printf("년도를 입력하세요: ");
    scanf_s("%d", &year);

    if (year > 2000) {
        printf("입력한 년도는 2000년 이후입니다.\n");
    } else {
        printf("입력한 년도는 2000년 이전입니다.\n");
    }
    return 0;
}

위 예시에서는 if 조건문을 사용하여 입력받은 년도가 2000년 이후인지 이전인지 확인하고, 그에 맞는 메시지를 출력합니다.

6. 결론

이번 포스팅에서는 C언어의 기초적인 문법과 여러 기능을 예시를 통해 살펴보았습니다. printf와 scanf_s를 활용한 입력과 출력, 함수 정의 및 호출, 조건문 사용 등의 기초적인 개념을 이해하는 것이 중요합니다. 이를 바탕으로 점차 복잡한 프로그램을 작성할 수 있는 능력을 기를 수 있습니다.

C언어는 다소 생소할 수 있지만, 다양한 프로젝트와 문제 해결을 통해 익숙해질 수 있습니다. C언어의 기초를 잘 익혀 두면 다른 언어를 배우는 데에도 큰 도움이 될 것입니다. 앞으로도 다양한 C언어 프로그램을 작성해 보며 실력을 쌓아가세요!

'IT > C언어' 카테고리의 다른 글

Day 3 변수  (0) 2024.06.17
[C언어] 소개  (0) 2024.06.17