반응형

파일에 데이터를 기록하는 함수들

파일에 데이터를 쓰는 함수는 프로그램의 결과나 로그를 파일에 저장할 때 사용됩니다. 대표적인 함수로는 printf, fprintf, sprintf가 있습니다.

 

printf 함수

printf는 표준 출력(콘솔)에 데이터를 출력하는 함수입니다. 다양한 형식의 데이터를 화면에 출력할 수 있습니다.

 

#include <stdio.h>

int main() {
    int number = 10;
    printf("The number is: %d\n", number);  // 콘솔에 정수를 출력함
    return 0;
}

 

실행 결과

The number is: 10

 

  1. printf 함수는 "The number is: " 문자열과 변수 number의 값을 형식화하여 출력합니다.
  2. %d는 정수 형식을 의미하며, number의 값이 해당 위치에 출력됩니다.
반응형

 

fprintf 함수

fprintf는 파일에 데이터를 출력하는 함수입니다. printf와 유사하지만, 출력 대상이 파일이라는 점에서 차이가 있습니다. 파일을 쓰기 모드로 열고(fopen), fprintf로 데이터를 출력한 후 파일을 닫아야 합니다.

 

#include <stdio.h>

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

    int number = 100;
    fprintf(file, "The number is: %d\n", number);  // 파일에 데이터를 씀

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

 

 

실행 결과

(output.txt 파일)
The number is: 100

 

  1. fopen 함수로 output.txt 파일을 쓰기 모드로 엽니다.
  2. fprintf 함수는 파일에 "The number is: 100"이라는 형식으로 데이터를 씁니다.
  3. fclose 함수로 파일을 닫습니다.

 

sprintf 함수

sprintf는 문자열에 데이터를 출력하는 함수입니다. printf와 유사하지만, 출력 결과가 표준 출력이나 파일이 아닌 문자열에 저장된다는 점이 다릅니다.

 

#include <stdio.h>

int main() {
    char buffer[50];
    int number = 50;
    sprintf(buffer, "The number is: %d", number);  // 문자열에 데이터를 씀
    printf("%s\n", buffer);  // 문자열을 콘솔에 출력함
    return 0;
}

 

실행 결과

The number is: 50

 

  1. sprintf 함수는 "The number is: 50" 문자열을 buffer에 씁니다.
  2. printf 함수는 buffer에 저장된 문자열을 출력합니다.

 

지난 시간과 이번 시간에 걸쳐 파일과 문자열 입출력 함수들에 대해 알아보았습니다. 사실, 이 함수들을 쉽게 구분할 수 있는 간단한 규칙이 있습니다. 함수의 접두사에 따라 "○○에 입력/출력한다"라는 공식이 적용됩니다. 즉, 접두사가 같다면 ○○ 또한 같다는 것입니다.

 

간단 정리

  1. 파일 문자열 입출력 함수들은 접두사에 따라 ○○에 입출력을 할 지 정해진다.
  2. f (fprintf, fscanf) : file, 파일에 입출력을 실행
    s (sprintf, sscanf) : string, 문자열에 입출력을 실행
    없는 경우 (printf, scanf) : 표준 입출력 = 콘솔에 실행

 

함수 원형

  1. 입력 함수 (#include <stdio.h>)
    • scanf - int scanf(const char *format, ...);
      반환 : 저장에 성공한 데이터 개수
    • fscanf - int fscanf(FILE *stream, const char *format, ...);
      반환 : 인자를 입력받은 개수
    • sscanf - int sscanf(const char *str, const char *format, ...);
      반환 : 성공적으로 변환되고 지정된 필드 수
  2. 출력 함수 ( #include <stdio.h>)
    1. printf - int printf(const char *format, ...);
      반환 : printf 함수가 반환하는 값은 문자열 길이
    2. fprintf - int fprintf(FILE *stream, const char *format, ...);
      반환 : fprintf 가 쓰는 바이트 수
    3. sprintf - int sprintf(char *str, const char *format, ...);
      반환 : 끝 널 문자를 계산하지 않고 배열에 작성된 바이트 수
반응형