FILE* fopen(const char* , const char* )
 int fclose(FILE*)
 int fscanf(FILE* , const char*)
 int fprintf(FILE* , const char*)
 int fread(void* , int , int , FILE*)
 int fwrite(void* , int , int , FILE*)
 char *fgets(char *, int , FILE*)
 int fputs(char *, FILE*)
 
 //I/O Mode
 // r w a r+ w+ a+
 
 //File Type
 // t b

image.png

  1. 문자열 입력받아 파일에 저장하기
#include <stdio.h>

int main() 
{
    FILE* file;
    char str[100];

    // 문자열 입력받기

    // 파일 쓰기 모드로 열기
    
    
    if (file == NULL) {
        printf("파일을 열 수 없습니다.\\n");
        return 1;
    }

    // 파일에 문자열 쓰기
    
    
    fclose(file);
    
    return 0;
}
  1. 파일로부터 문자열을 읽어서 출력하기
#include <stdio.h>

int main() 
{
    FILE* file;
    char str[256];

    // 파일 읽기 모드로 열기
    
    
    if (file == NULL) {
        printf("파일을 열 수 없습니다.\\n");
        return 1;
    }

    // 파일에서 읽기
    
    // 파일에서 읽은 데이터 출력
 
    fclose(file);
    
    return 0;
}
  1. 파일에 쓰고 다시 읽기
#include <stdio.h>

int main() 
{
    FILE* file;
    int n, number, count=0, sum = 0;
    double average;

    printf("저장할 숫자의 개수를 입력하세요: ");
    scanf("%d", &n);

    // 쓰기 모드로 파일 열기
    
    if (file == NULL) {
        printf("파일을 열 수 없습니다.\\n");
        return 1;
    }

    printf("숫자 %d개를 입력하세요:\\n", n);
    for (int i = 0; i < n; i++) {
        scanf("%d", &number);
        // 입력받은 숫자를 파일에 저장
    }
    
    // 파일 닫기

   
    // 읽기 모드로 파일 열기
    
    if (file == NULL) {
        printf("파일을 열 수 없습니다.\\n");
        return 1;
    }

    // 파일에 저장된 숫자 읽기
    
    // 파일 닫기

    // 평균 계산
    average = (float)sum / count;

    // 결과 출력
    printf("합계: %d\\n", sum);
    printf("평균: %.2f\\n", average);

    return 0;
}
  1. 파일 복사하기
#include <stdio.h>

int main() 
{
    FILE *src, *dest;
    char src_file_name = "original.txt";
    char dest_file_name = "copy.txt";
    char buffer[256];

    // 원본 파일 읽기 모드
    
    if (src == NULL) {
        printf("원본 파일을 열 수 없습니다.\\n");
        return 1;
    }

    // 복사할 파일 쓰기 모드
    
    if (dest == NULL) {
        printf("복사 파일을 열 수 없습니다.\\n");
        fclose(src);
        return 1;
    }

    // 원본 파일에서 한 줄씩 읽기
    // 읽은 내 복사 파일에 한 줄씩 쓰기
    
    fclose(src);
    fclose(dest);
    
    return 0;
}
  1. 구조체 입출력
#include <stdio.h>
#include <stdlib.h>

typedef struct {
    char name[50];
    int score[3];
    float avg;      
} Student;

int main() 
{
    FILE* file;
    Student s= {"홍길동", {91, 83, 80}, 0.0f};

    // 파일 열기
    
    if (file == NULL) {
        printf("파일을 열 수 없습니다.\\n");
        return 1;
    }

    // 구조체 내용 파일에 저장
    
    // 파일 닫기 
   
    printf("구조체 데이터를 파일에 저장했습니다.\\n");

    // 파일 열기 
    
    if (file == NULL) {
        printf("파일을 열 수 없습니다.\\n");
        return 1;
    }

    // 저장된 내용 읽기
    
    
    // 파일 닫기

    printf("파일에서 구조체 데이터를 읽어왔습니다.\\n");

    // 점수로부터 평균을 구해 출력하기

    return 0;
}