반응형

바이너리(이진) 파일 입출력 예제

 

#include <iostream>
#include <fstream>

 

using namespace std;

 

int main()
{
  ifstream fi;    // 읽기용 파일
  ofstream fo;   // 쓰기용 파일

 

  fo.open("test.dat", ostream::binary); // 쓰기용 이진 파일 열기
  if (!fo) {   // if(fo.fail())
    cerr << "쓰기용 파일 오픈에 실패했습니다!" << endl;
    exit(1);
  }

 

  for (int i = 0; i < 10; i++)  // 0~9 숫자를 연속으로 저장
    fo.write((char*)&i, sizeof(int));

  fo.close();    // 쓰기용 파일 닫기

 

  fi.open("test.dat", ostream::binary); // 읽기용 이진 파일 열기
  if (!fi) { // if(fi.fail())
    cerr << "읽기용 파일 오픈에 실패했습니다!" << endl;
    exit(1);
  }

 

  // 이진 데이터를 읽어와서 숫자로 출력
  int n;
  for (int i = 0; i < 10; i++) {
    fi.read((char *)&n, sizeof(int));
    cout << n;
  }
  cout << endl;
  fi.close();    // 읽기용 파일 닫기

  return 0;
}

 

 

반응형

+ Recent posts