반응형

C 언어에서 파일 입출력 함수는 데이터를 읽어오고 기록하는 중요한 기능을 제공하며, 이를 잘 이해하면 파일을 통해 다양한 데이터를 효과적으로 관리할 수 있습니다. 이 포스팅에서는 초보자들도 쉽게 이해할 수 있도록 파일 입출력 함수의 기본 개념과 사용 방법에 대해 설명하고, 각각의 예제를 통해 실습해 볼 수 있도록 하겠습니다.

 

파일에서 데이터를 읽어오는 함수들

파일에서 데이터를 읽는 함수는 파일의 내용을 메모리로 가져와 처리할 수 있게 해줍니다. 이를 위해 사용하는 대표적인 함수로는 scanf, sscanf, fscanf가 있습니다.

 

scanf 함수

scanf는 표준 입력(키보드)으로부터 데이터를 읽어오는 함수입니다. 주로 콘솔 프로그램에서 사용자 입력을 받는 데 사용됩니다.

 

#include <stdio.h>

int main() {
    int number;
    printf("Enter a number: ");
    scanf("%d", &number);  // 사용자로부터 정수를 입력받음
    printf("You entered: %d\n", number);
    return 0;
}

 

실행 결과

Enter a number: 33
You entered: 33

 

  1. scanf 함수는 %d 형식을 사용하여 정수를 입력받습니다.
  2. 입력된 정수는 변수 number에 저장됩니다.
  3. printf 함수는 입력된 정수를 화면에 출력합니다.
반응형

sscanf 함수

sscanf는 문자열로부터 데이터를 읽어오는 함수입니다. 주어진 문자열을 해석해 변환하고, 이를 변수에 저장할 수 있습니다.

 

#include <stdio.h>

int main() {
    char str[] = "123 456";
    int num1, num2;
    sscanf(str, "%d %d", &num1, &num2);  // 문자열로부터 두 개의 정수를 읽어옴
    printf("Numbers are: %d, %d\n", num1, num2);
    return 0;
}

 

실행 결과

Numbers are: 123 456

 

  1. sscanf 함수는 문자열 str로부터 두 개의 정수를 읽어옵니다.
  2. %d %d 형식은 두 개의 정수를 읽도록 지정합니다.
  3. 읽어온 값은 num1과 num2에 각각 저장됩니다.

 

fscanf 함수

fscanf는 파일로부터 데이터를 읽어오는 함수입니다. scanf와 유사하지만, 입력이 파일에서 이루어진다는 점에서 차이가 있습니다. 파일을 읽기 모드로 열고, fscanf를 통해 데이터를 읽어올 수 있습니다.

 

#include <stdio.h>

int main() {
    FILE *file = fopen("data.txt", "r");  // 파일을 읽기 모드로 엶
    if (file == NULL) {
        printf("Could not open file.\n");
        return 1;
    }

    int num;
    fscanf(file, "%d", &num);  // 파일에서 정수를 읽어옴
    printf("Read number from file: %d\n", num);

    fclose(file);  // 파일 닫기
    return 0;
}

 

실행 결과1

Read number from file: 33

실행 결과2 

Could not open file.

 

  1. fopen 함수로 data.txt 파일을 읽기 모드로 엽니다.
  2. fscanf 함수는 파일에서 정수를 읽어 num에 저장합니다.
  3. printf 함수는 읽어온 정수를 출력합니다.
  4. 파일을 닫기 위해 fclose 함수를 사용합니다.

 

위의 예제에서는 data.txt 파일에서 정수를 읽어와 출력합니다. 파일을 열고(fopen), 데이터를 읽고(fscanf), 파일을 닫는(fclose) 과정이 중요합니다.

반응형