로그인

검색

C/C++
2013.07.28 02:50

ofstream ifstream

MoA
조회 수 1472 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄

ofstream

 

n  파일로부터 읽어들이거나 쓰기 위해 사용되는 특수한 객체를 ofstream객체라 한다.

n  ofstream 객체는 iostream 객체로부터 파생되었다.

n  파일에 쓰려면 ofstream 객체를 만들고 디스크의 특정 파일과 연결지어야 한다.

n  ofstream 객체를 사용하려면 먼저 프로그래머는 #include <fstream.h>를 포함해야 한다.

 

 

조건을 나타내는 상태

 

n  iostream 객체는 입력과 출력 상태를 알리는 플래그를 가지고 있다.

n  불린 함수 eof(), bad(), fail(), good()를 사용하여 이 플래그들을 검사할 수 있다.

-       eof() : iostream 객체가 EOF를 만나면 참값을 반환한다.

-       bad() :  유효하지 않은 연산자를 시도하려면 참값을 반환

-       fail() : bad() 함수가 실패하면

-       good() : 위의 세 개의 함수가 거짓을 참을 반환한다.

 

입출력을 위한 파일 열기

n  만약 ttext.txt 파일을 ofstream 객체로 열기 위해 ofstream 객체의 인스턴스를 선언하고 매개 변수로 파일 이름을 전달한다.

-       ofstream fout(“text.txt”);

n  입력용으로 열기 위한 방법

-       ifstream fin(“text.txt”);

n  close()

-       읽기용이나 쓰기용읽고 동시에 쓰기용으로 열어놓은 파일은 입출력을 마친 뒤 사용을 한다.

 

 

순차 접근 파일 생성

 

#include<iostream>

#include<fstream>

using std::ofstream; //파일에 쓰기용

 

File Access Type

ios::app 파일 끝에 모든 출력을 추가

ios::ate 출력을 위해 파일을 열고 파일의 끝으로 이동

ios::in 입력용 파일 열기

ios::out 출력용 파일 열기

ios::trunc 파일이 존재한다면, 파일 내용을 모두 삭제(ios::out을 위한 디폴트 동작)

ios::binary 텍스트가 아닌 이진으로 입출력하기 위한 파일열기


int main()
{

   int accoount;
   char name[30];
   double balance;
 
  ofstream outFile("test.dat",ios::out); //파일을 연다, 없으면 생성
  while(cin>>account>>name>>balance)
      outFile<<account<<' '<<name<<' '<<balance<<endl;  //이런형식으로 저장됨
  return 0;

}


 순차 접근 파일에서데이터 읽기

 
using std::ifstream; //파일 읽기용 
 

istream : seekg(seek get) //읽기용 포인터 탐색

ostream : seekp(seek put) //쓰기용 포인터 탐색

 

예)

  fileObject.seekg(n); //fileObject의 n바이트로 이동(디폴트ios::beg)

  fileObject.seekg(n, ios::cur); //fileObject의 현재 위치에서 n바이트 앞으로 이동

  fileObject.seekg(n, ios::end); //fileObject의 끝에서 뒤로 n바이트로 이동

  fileObject.seek(0, ios::end); //fileObject의 끝으로 이동

 

int main()
{

   int accoount;
   char name[30];
   double balance;
 
  ifstream inFile("test.dat",ios::in);   //읽을 파일을 연다.
  while(inFile>>account>>name>>balance)
      cout << account << ' ' << name << ' ' << balance << endl;  //이런형식으로 저장됨
  return 0;

}


임의 접근 파일에 임의로 데이터 쓰기

 

#include<fstream>
 
using std::ofstream;
using std::ifstream;
 
typedef struct {
   char name[16];
   int    id[20];
   int age;
}  Student;
 
Student memb;
 
int main()
{
 
// case 1
   ifstream inFile("testIn.dat",ios::in);
  inFile.read(reinterpret_cast<char*>(&memb), sizeof(Student));
 
  ofstream outFile("testOut.data",ios::binary);
  outFile.seekp(0, ios::end);
  outFile.write(reinterpret_cast<const char*>(&memb),sizeof(Student));
 
// Case 2
  while(inFile&& !inFile.eof())  {    //파일의 끝까지 모든 레코드를 읽음
      inFile.read(reinterpret_cast<char*>(&memb),sizeof(Student));       //다음 레코드를 읽음
      outFile.write(reinterpret_cast<const char*>(&memb),sizeof(Student));
  }
 
// Case 3
  fstream outFile("testmemb.dat",ios::in | ios::out); //읽고 쓰기위한 파일 열기
 
  return 0;


파일 열고 쓰기 예

 

/*
*  읽기와쓰기용으로파일을열기
*/
 
#include <fstream>
#include <iostream>
using namespace std;
 
char gbuffer[1024];    
char fileName[80];
 
int main()
{
        cout << "file name: ";
        cin >> fileName;
 
        /// 쓰기용
        ofstream fout(fileName);
        fout << "this line written directory to the file.....n";
        cout << "Enter text for the file:";
        /// 파일뒤에개행문자를없앤다.
        cin.ignore(1,'n');
 
        /// 사용자입력을받는다.
        cin.getline(gbuffer, 255);
 
        /// 파일에쓴다.
        fout << gbuffer<< "n";
 
        /// 파일객체를닫고다시열기를기다린다.
        fout.close();
 
        /// 읽기를위해서스트림을다시연다
        ifstream fin(fileName);
        cout << "Here's the contents of the file: n";
        char ch;
        while (fin.get(ch))
        {
               cout << ch;
        }
 
        cout << "n";
        cout << "### End of file contents ###n";
        fin.close();
        return 0;
}



http://blog.naver.com/dolicom/10086114631

?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 Tool/etc Programming 게시판 관련 2 MoA 2014.11.01 5721
108 C/C++ RAND_MAX 2 MoA 2014.01.19 1294
107 Reversing 워게임 사이트 정리 MoA 2014.01.27 1898
106 Library CSpreadSheet MoA 2014.02.03 884
105 Python 파이썬에서 C모듈 사용하기 MoA 2014.02.10 2584
104 API/MFC 다이얼로그 기반에서 메뉴 내용이 갱신 안되는 문제 해결 MoA 2014.02.13 1543
103 Tool/etc 자바스크립트 물리엔진 ㄷㄷ MoA 2014.03.10 1118
102 Tool/etc UI Guidelines MoA 2014.03.11 1473
101 Algorithm 2048게임 높은 점수 얻기 위한 알고리즘 MoA 2014.03.29 1314
100 Python [게임 만들기] 강좌 진행 예정 2 MoA 2014.04.26 2176
99 Python [농장게임 만들기] 1. Nubcake Farms 게임 소개 4 file OBG 2014.04.26 2386
98 Python [농장게임 만들기] 2. Nubcake Farms 클래스 분석 3 file OBG 2014.04.26 1468
97 Python [농장게임 만들기] 3. 배경을 그리자 6 file MoA 2014.04.28 2840
96 Python [농장게임 만들기] 4. 펜스를 그리자 5 file MoA 2014.04.30 1361
95 Python [농장게임 만들기] 5. 플레이어를 추가하자 1 file MoA 2014.04.30 1311
94 Python [농장게임 만들기] 6. 나머지 오브젝트를 그리자 1 file MoA 2014.05.01 1692
93 Python [농장게임 만들기] 7. 농부 행동 추가 1 file MoA 2014.05.01 1349
92 Python [농장게임 만들기] 8. HUD에 텍스트를 표시하자 file MoA 2014.05.01 1503
91 Python [농장게임 만들기] 9. 밀을 재배하자 file MoA 2014.05.01 1139
90 Python [농장게임 만들기] 10. 상점을 추가하자 file MoA 2014.05.01 3009
89 Python [액션게임 만들기] 1. Street Pyghter 게임 소개 3 file OBG 2014.05.03 1796
Board Pagination Prev 1 ... 5 6 7 8 9 10 11 12 13 14 15 Next
/ 15