본문 바로가기

old drawer/C, C++, MFC

[C++] 프로그래밍 파일 입출력(ofstream/ifstream)

C++ 프로그래밍 파일 입출력(ofstream/ifstream)



C++에서 파일 입출력 하는 방법이다. 

C 에서는 주로 FILE을 이용해서 파일 입출력을 하지만, C++에서는 fstreamofstream ifstream 클래스를 이용하면 쉽게 구현이 가능하다. 

  사용방법 
파일 쓰기
ofstream 객체명("파일명");  

파일 읽기 
ifstream 객체명("파일명");

또는 

ifstream 객체명 
객체명.open("파일명");  or  객체명.open("파일명" , open모드|open모드); 


  open 모드 열거형 상수 

  ios::in

 읽기만 가능한 형태로 파일 오픈

  ios::ate

 파일을 오픈하면서 파일포인터를 끝부분으로 옮김 

  ios::app

 출력하는 데이터가 항상 파일의 끝에 기록 

  ios::trunc

 오픈하고자 하는 파일이 이미 있는경우, 기존의 파일을 삭제하고 다시 만듬  

  ios::nocreate

 오픈하고자 하는 파일이 이미 있는 경우 오픈하지 않고 에러를 발생시킴. 기존의 파일은 삭제하지 않음 

  ios::noreplace

 nocreate와 동일하나, app 모드로 오픈할 경우는 오픈 가능

  ios::binary

 바이너리 파일 모드로 오픈

ex) 
ifstream fileopen; 
fileopen.open("open.txt" , ios::in|ios::binary);


다음 소스는 간단하게 0-9 까지의 숫자를 쓴 파일을 생성하고, 그 파일을 읽어들이는 소스이다. 
여기서 파일을 읽어들일때는 getline() 한수를 사용했는데, getline()은 계행문자를 입력의 끝으로 인식하여 정해진 길이만큼 한줄 전체를 읽어들인다


  소스코드

#include <fstream>

#include <iostream>


using namespace std;


#define MAX_SIZE 1000

char inputString[MAX_SIZE];


int  main(){

// 파일 입력 (쓰기)

        ofstream outFile("output.txt");


        for(int i = 0 ; i < 10 ; i++){

                outFile << i << endl;

        }


        outFile.close();

//파일 출력 (읽기)

        ifstream inFile("output.txt");


        while(!inFile.eof()){

                inFile.getline(inputString, 100);

                cout << inputString << endl;

        }

        inFile.close();

        return 0;

}



  출력화면

 

 

 

 

<출처> http://ra2kstar.tistory.com/147