메뉴 건너뛰기

OBG

Programming

C/C++
2013.07.28 02:50

ofstream ifstream

MoA
조회 수 519 추천 수 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 1709
146 API/MFC MFC로 그림 그리기 Naya 2012.08.02 317
145 API/MFC MFC에서 생성,사용되는 파일 확장자 MoA 2013.08.30 666
144 LLM Mixture of Experts - Part 2 OBG 2024.04.14 21
143 API/MFC MSCOMM32.OCX 등록 너울 2011.10.17 898
142 Python Numpy의 axis 변경 OBG 2023.06.09 72
141 API/MFC Office 스타일의 리본바 만드는 법 너울 2012.01.12 342
» C/C++ ofstream ifstream MoA 2013.07.28 519
139 Python OpenCV 이용한 템플릿 매칭 MoA 2014.01.16 1250
138 JAVA/Android PackageBroadcastReceiver 구현 MoA 2013.05.22 591
137 LLM PEFT: Parameter-Efficient Fine-Tuning of Billion-Scale Models on Low-Resource Hardware OBG 2024.04.15 15
136 Site PHP: 잘못된 디자인의 프랙탈 MoA 2016.07.10 436
135 Deeplearning Play Super Mario Bros with a Double Deep Q-Network OBG 2022.09.15 109
134 서버 PM2를 활용한 Node.js 무중단 서비스하기 OBG 2023.03.09 104
133 C/C++ printf Type Field Characters 너울 2012.02.23 313
132 API/MFC Property Sheet의 버튼 속성 변경하기 MoA 2013.07.25 485
131 Library pthread MoA 2013.07.28 287
130 Deeplearning PyTorch 딥러닝 챗봇 OBG 2023.07.04 79
129 Tool/etc Quake 3 source code and review MoA 2014.01.15 383
128 Tool/etc R language 사이트 너울 2012.02.08 571
127 C/C++ RAND_MAX 2 MoA 2014.01.19 397
Board Pagination Prev 1 ... 3 4 5 6 7 8 9 10 11 12 ... 15 Next
/ 15
위로