차근차근/C

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

예쁜꽃이피었으면 2014. 7. 29. 01:01

http://ra2kstar.tistory.com/147

 

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

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

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

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

또는 

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


  open 모드 열거형 상수 

 

  ios::in

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

  ios::ate

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

  ios::app

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

  ios::trunc

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

  ios::nocreate

 file open 을 시도하지 않고 file의 존재 여부만 판단. file이 존재하지 않을 경우 에 러를 발생 (파일을 생성하지 않음) 

  ios::noreplace

 nocreate 와 반대. file이 존재하면 에러를 발생

  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;

}



 

 

  출력화면



반응형

'차근차근 > C' 카테고리의 다른 글

.h .hpp 차이  (0) 2014.07.29
Python 소스코드를 Visual C++ 로 빌드하는 방법  (0) 2014.07.29
연산자 오버로딩 총정리  (0) 2014.07.29
dirent.h  (0) 2014.07.29
c/c++ 에서 #include 지시어의 " " 와 < > 의 차이점  (0) 2014.07.29