본문 바로가기
스터디/C 언어

[스터디] [C언어]-3 : 언어의 기본 구조와 표준 입출력

by 인포-런 2024. 7. 31.
728x90
반응형

C 언어의 기본 구조

C 언어 프로그램은 기본적으로 함수의 집합으로 이루어져 있습니다. 모든 C 프로그램은 반드시 main 함수를 포함하고 있어야 하며, 프로그램의 실행은 main 함수에서 시작합니다.

C 프로그램의 기본 구조

#include <stdio.h>  // 표준 입출력 라이브러리 포함

// 함수 선언
void 함수명();

int main() {
    // 메인 함수: 프로그램의 시작점
    printf("Hello, World!\n");  // "Hello, World!" 출력
    return 0;  // 프로그램 정상 종료
}

// 함수 정의
void 함수명() {
    // 함수의 본문
}
 

위 구조를 통해 C 프로그램의 기본적인 구성 요소를 이해할 수 있습니다.

C 언어의 표준 입출력

C 언어는 표준 입출력 라이브러리를 통해 입력과 출력을 처리합니다. 이 라이브러리는 <stdio.h> 헤더 파일에 정의되어 있습니다. 표준 입출력의 주요 함수에는 printf, scanf, puts, gets 등이 있습니다.

표준 출력: printf

printf 함수는 포맷된 문자열을 출력하는 데 사용됩니다.

예시:

#include <stdio.h>

int main() {
    printf("Hello, World!\n");  // "Hello, World!" 출력
    printf("정수: %d\n", 10);    // 정수 10 출력
    printf("실수: %f\n", 3.14);  // 실수 3.14 출력
    printf("문자: %c\n", 'A');   // 문자 A 출력
    printf("문자열: %s\n", "안녕하세요");  // 문자열 "안녕하세요" 출력
    return 0;
}
 

포맷 지정자:

  • %d: 정수(int)
  • %f: 실수(float)
  • %c: 문자(char)
  • %s: 문자열(char 배열)

표준 입력: scanf

scanf 함수는 사용자로부터 입력을 받아 변수에 저장하는 데 사용됩니다.

예시:

#include <stdio.h>

int main() {
    int num;
    float fnum;
    char ch;
    char str[100];

    printf("정수를 입력하세요: ");
    scanf("%d", &num);  // 정수를 입력 받아 변수 num에 저장

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

    printf("문자를 입력하세요: ");
    scanf(" %c", &ch);  // 문자를 입력 받아 변수 ch에 저장
    // " %c" 앞의 공백은 이전 입력의 버퍼 문제를 해결하기 위해 사용

    printf("문자열을 입력하세요: ");
    scanf("%s", str);  // 문자열을 입력 받아 배열 str에 저장
    // 공백이 없는 단어만 입력받음

    printf("입력된 정수: %d\n", num);
    printf("입력된 실수: %f\n", fnum);
    printf("입력된 문자: %c\n", ch);
    printf("입력된 문자열: %s\n", str);

    return 0;
}
 

포맷 지정자:

  • %d: 정수(int)
  • %f: 실수(float)
  • %c: 문자(char)
  • %s: 문자열(char 배열)

표준 출력: puts

puts 함수는 문자열을 출력하고 자동으로 줄바꿈을 합니다.

예시:

#include <stdio.h>

int main() {
    char str[] = "Hello, World!";
    puts(str);  // "Hello, World!" 출력 후 줄바꿈
    return 0;
}

표준 입력: gets

gets 함수는 한 줄의 문자열을 입력받습니다. 하지만 이 함수는 버퍼 오버플로우의 위험이 있어 fgets 사용이 권장됩니다.

예시:

#include <stdio.h>

int main() {
    char str[100];

    printf("문자열을 입력하세요: ");
    gets(str);  // 문자열을 입력 받아 배열 str에 저장

    printf("입력된 문자열: %s\n", str);
    return 0;
}
 
 

버퍼 오버플로우 방지: fgets

fgets 함수는 안전하게 문자열을 입력받을 수 있습니다.

#include <stdio.h>

int main() {
    char str[100];

    printf("문자열을 입력하세요: ");
    fgets(str, sizeof(str), stdin);  // 문자열을 입력 받아 배열 str에 저장

    printf("입력된 문자열: %s\n", str);
    return 0;
}

C 언어의 기본 구조와 표준 입출력 정리

  • 기본 구조: 모든 C 프로그램은 main 함수를 포함해야 하며, 함수 선언과 정의로 구성됩니다.
  • 표준 입출력: printf와 scanf를 사용하여 데이터를 출력하고 입력받습니다. puts와 gets도 문자열 처리에 사용되지만, 보안 문제로 fgets가 권장됩니다.

C 언어의 이러한 기본 구조와 표준 입출력 기능을 이해하면, 다양한 프로그램을 작성하고 데이터를 처리하는 데 큰 도움이 됩니다.

728x90
반응형