filestream

😎·2022년 12월 14일
0

CPP

목록 보기
16/46

filestream

ifstreaminputFileStream 의 줄임말로 읽어올 파일을 가리킬 때 사용한다. ofstreamoutputFileStream 의 줄임말로 읽어올 파일을 가리킬 때 사용한다.

파일을 읽어올 때는 ifstream 클래스를, 파일에 내용을 출력할 때는 ofstream 클래스의 멤버 함수로 처리한다.


예시

#include <iostream>
#include <fstream>

int main(void)
{
1.  std::ifstream   ifs("numbers");
    unsigned int    dst;
    unsigned int    dst2;
2.  ifs >> dst >> dst2;

3.  if (!ifs.is_open())
    {
        std::cout << "파일을 열 수가 없습니다!" << std::endl;
        exit(1);
    }
4.  std::cout << dst << dst2 << std::endl;
    std::cout << "-------------------" << std::endl;

5.  std::ofstream ofs("test.out");
6.  ofs << "i like ponies a whole damn lot" << std::endl;
    ofs.close();

}

1 번에서 ifstream 클래스를 이용해서 ifs 객체를 만들었고, 바로 객체 메서드를 실행했다.

이때 std::ifstream ifs(”numbers”)는 코드 실행 과정에 open 함수를 실행하기 때문에, 같은 디렉토리의 nubmers 라는 파일의 fd를 연결한다.

2 번에서는 dstdst2 변수에 numbers 파일의 내용을 출력한다. 만약 해당 파일이 없다면, 3 번 조건문에 걸려서 파일을 열 수가 없습니다! 라는 문구가 출력된다.

2번은 화이트스페이스를 기준으로 변수에 넣고, 4번에서 dstdst2 를 출력한다.

예시!

13 4 5 6 를 넣으면, 134 출력

134 55 6 를 넣으면, 13455

5 번 std::ofstream ofs("test.out") 을 통해 test.out 파일을 출력 스트림에 연결한다.

그 후 6 번을 통해 test.out 에 문자열을 출력한다. ofs << "i like ponies a whole damn lot" << std::endl

test.out 파일이 없으면 파일을 만들어서 문자열을 넣고, 있으면 기존에 있던 문자열을 지우고 넣는다.

전체 과정은 다음과 같다.

1 번을 보면 파일이 cpp 파일과 numbers 파일만 있다.

컴파일 후 2 번을 보면, ifstream 으로 파일의 값을 입력받은 변수들이 출력된다.

3 번을 보면 실행 후 test.out 파일이 생성된 것을 확인할 수 있다.

그 후 4 번의 내용을 cat 으로 출력하면 ofstream 으로 파일에 출력한 값을 확인할 수 있다.


참고 자료

profile
jaekim

0개의 댓글