C++ 프로그래밍 파일 입출력(ofstream/ifstream)
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 |
오픈하고자 하는 파일이 이미 있는 경우 오픈하지 않고 에러를 발생시킴. 기존의 파일은 삭제하지 않음 |
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;
}
출력화면
'old drawer > C, C++, MFC' 카테고리의 다른 글
[MFC] CCombobox 이벤트 처리 (0) | 2012.10.22 |
---|---|
[C++]ifstream, ofstream 개선 (0) | 2012.09.17 |
[MFC] 다이얼로그 내부 Formview 생성하기 (0) | 2012.09.11 |
[MFC] SDI 메뉴(MENU) 없애기 (0) | 2012.09.11 |
[C] strtok함수를 이용한 문자열 자르기[펌] (1) | 2012.09.10 |