블로그 이미지
Kanais
Researcher & Developer 퍼즐을 완성하려면 퍼즐 조각들을 하나 둘씩 맞춰나가야 한다. 인생의 퍼즐 조각들을 하나 둘씩 맞춰나가다 보면 인생이란 퍼즐도 완성되는 날이 오려나...?

calendar

1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

Notice

2015. 5. 8. 16:36 Programming/C/C++


출처 : 초보개발자 이야기 - C++ 프로그래밍 파일입출력


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;

}



  출력화면



posted by Kanais