[자료구조] 파일 입출력

치치·2024년 12월 31일
0

자료구조C++

목록 보기
7/17
post-thumbnail

파일 입출력

필요한 파일을 가져오기 위한 통로인 스트림을 거쳐서 파일을 입출력 하는 것

파일 입출력의 스트림과 표준입출력의 스트림은 다른 것

  • 표준 입출력의 스트림은 운영체제로 입력을 하는 std-in과 화면으로 출력을 하는 std-out과 같은 연결통로이다
  • 파일 입출력의 스트림은 파일과 프로그램 사이에 데이터를 주고받기 위한 연결통로이다
  • fopen하게되면 즉시 Stream이 활성화

✅ 파일 쓰기

  • 파일을 가져오는 것은 우선 파일을 열어야한다

  • File Mode (w) : 파일을 쓰기 모드로 설정

  • fopen("파일이름.확장자", "파일모드");
    -> 읽기모드로 파일을 염

  • 파일에 내용을 넣어주기 위해선 fputs("내용", file);

  • fputs로 내가 연 파일안에 문자열을 넣어주었다
    -> data.txt파일안에 fputs로 적은 문자열이 들어간 것을 확인할 수 있다

  • 파일 수정이 모두 끝났으면 반드시 fclose( ) 하여 파일을 닫아줘야한다

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>

#define SIZE 20000
int main()
{
	FILE *file = fopen("data.txt", "w");

	char buffer[SIZE] = { 0, };
    
    fputs("Name\n", file);
    fputs("Level\n", file);
    
    fclose(file);
}

✅ 파일 읽기

  • File Mode (r) : 파일을 읽기 모드로 설정

  • fread (4개의 매개변수)

    첫 번째 매개변수 : 읽은 데이터를 저장할 메모리 버퍼의 포인터 변수
    두 번째 매개변수 : 각 데이터 항목의 크기
    세 번째 매개변수 : 데이터를 읽어 올 데이터 항목의 수
    네 번째 매개변수 : 데이터를 읽어 올 파일 포인터 변수

  • fopen으로 파일을 오픈한 뒤 값을 읽기

  • data.txt 파일에 들어있는 값이 실행시키면 출력된다

  • 파일 읽기가 끝났으면 반드시 fclose로 파일 닫기
int main()
{
	FILE * file = fopen("data.txt", "r");
	
    char buffer[SIZE] = {0, };
    
    fread(buffer, 1, SIZE, file);
    
    printf("%s", buffer);
    
    fclose(file);
}

✅ 파일 읽기를 함수로 만들기!

  • 매개변수로 해당 파일의 이름을 받는다
  • 매개변수로 들어온 파일을 열고 읽은 후 닫는다

  • 프로그램 파일안에 snail.TXT라는 파일을 열기
    -> 해당 파일안의 내용을 출력
    -> 파일 닫기
void FileOpen(const char * filename)
{
    FILE* file = fopen(filename, "r");

    char buffer[SIZE] = { 0, };

    fread(buffer, 1, SIZE, file);

    printf("%s",buffer);

    fclose(file);
}

int main()
{
	FileOpen("snail.TXT");
}

(2024.12.30.월요일)

profile
뉴비 개발자

0개의 댓글