본문 바로가기
Language/C언어

C023_파일 쓰고 읽기 fread, fwrite

by OdOp 관리자 2023. 9. 25.
SMALL

전 포스팅에서 기본적인 파일 쓰는 법, 읽는 법, 파일 모드 종류에 대해 살펴보았습니다.

아직 보지 않으시거나 파일 쓰고 읽기가 아직은 어색하신 분들은 아래의 링크 참고 부탁드리겠습니다. 

https://hig0617.tistory.com/27

 

이번 포스팅에서는 fwrite, fread에 대해 살펴보도록 하겠습니다. 

 

fwrite

#include <stdio.h>
#include <string.h>  //strlen 함수가 선언된 헤더 파일 

int main()
{
    char *s1 = "Hello 100!";

    FILE* fp = fopen("hello.txt", "w");
    fwrite(s1, strlen(s1), 1, fp);
    fclose(fp);
    return 0;
}

작성할 문자열을 미리 s1에 저장해 둡니다. 

쓰기 모드로 파일을 엽니다. 

이제 작성해 보도록 하겠습니다.

fwrite(s1, strlen(s1), 1, fp);

fwrite는 작성할 문자열을 넣고 크기와 횟수 그리고 파일의 위치를 입력하면 할 수 있습니다. fwrite의 기본적인 틀을 알려드리겠습니다. 

fwrite(작성할 문자열, 크기(문자열의 길이 x 횟수), 작성할 횟수, 파일 포인터);

이러한 형태로 작성이 되게 합니다. 하나하나 살표 보죠.

작성할 공간에 s1을 넣었습니다. 

크기는 strlen(s1)으로 문자열의 길이를 제어서 넣도록 하겠습니다.

마지막으로 파일 포인터 fp을 넣었습니다.

다 했으면 파일을 닫고 끝냅니다.

 

fread

#include <stdio.h>
#include <string.h>  //strlen 함수가 선언된 헤더 파일 

int main()
{
    char *s1 = "Hello 100!";
    char buffer1[20] = { 0, };  //파일을 읽을 때 사용할 임시 공간, 미리 0으로 전부 초기화 

    FILE* fp = fopen("hello.txt", "w");
    fwrite(s1, strlen(s1), 1, fp);
    fclose(fp);
    FILE* fp1 = fopen("hello.txt", "r");
    fread(buffer1, sizeof(buffer1), 1, fp1);
    printf("%s\n", buffer1);
    fclose(fp1);
    return 0;
}

위에서와 같은 방식으로 파일을 쓰고 이제는 읽어보도록 하겠습니다. 

저장할 문자열 buffer1을 미리 만들어 두었습니다. 

읽기 모드로 파일을 엽니다.

이제 읽어 보도록 하겠습니다.

fread(buffer1, sizeof(buffer1), 1, fp1);

fread는 저장할 문자열을 넣고 크기와 횟수 그리고 파일의 위치를 입력하면 할 수 있습니다. fread의 기본적인 틀을 알려드리겠습니다. 

fread(저장할 문자열, 크기(저장할 문자열의 크기), 저장할 횟수, 파일 포인터);

이러한 형태로 작성이 되게 합니다. 하나하나 살표 보죠.

작성할 공간에 buffer1을 넣었습니다. 

크기는 sizeof(buffer1)로 넣도록 하겠습니다.

마지막으로 파일 포인터 fp을 넣었습니다.

다 했으면 파일을 닫고 끝냅니다.

LIST

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

C025_putchar함수 만들기  (0) 2023.10.12
C024_파일 크기 구하기  (0) 2023.09.26
C022_파일 쓰고 읽기 fput, fgets  (0) 2023.09.24
C021_파일 쓰고 읽기  (0) 2023.09.23
C020_함수 포인터  (0) 2023.09.22