Programming/C++

[C++] 파일 입출력 fstream

Jubil 2018. 1. 22. 18:31
반응형

사용하기 위해서 #include <fstream>을 해야합니다.


파일 출력 클래스 ofstream.


출력할 내용을 파일 객체로 전달하면 됩니다.


ofstream 파일출력객체;

파일출력객체.open("출력파일이름");

파일출력객체 << 출력 내용;

파일출력객체.close();



파일 입력 클래스 ifstream.


파일 객체에서 입력 내용을 받으면 됩니다.


ifstream 파일입력객체;

파일입력객체.open("입력파일이름");

파일입력객체 >> 입력 내용저장변수;

파일입력객체.close();



파일 존재 여부 확인 멤버 함수


fail() : 객체가 가리키는 파일이 없으면 true를, 객체가 가리키는 파일이 있으면 false를 반환합니다.



파일의 마지막 위치 확인 멤버 함수


eof() : 파일 포인터가 파일 마지막에 위치하면 true를, 파일 포인터가 파일 마지막이 아니면 false를 반환합니다.




fstream 클래스는 open을 할 때 파일 모드를 설정해서 따로 입력 객체, 출력 객체 신경 쓰지 않고 쓸 수 있습니다.



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
31
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
int main() {
    fstream fs;
    
    fs.open("test.txt", ios::out);
    if (fs.fail()) return 0;
 
    fs << "keyboard" << endl;
    fs << "monitor" << endl;
 
    fs.close();
 
    fs.open("test.txt", ios::app);
    fs << "desk" << endl;
    fs.close();
 
    fs.open("test.txt", ios::in);
    string temp;
    
    while (fs >> temp, !fs.eof()) {
        cout << temp << endl;
    }
 
    fs.close();
 
    return 0;
}
cs


파일을 출력 모드로 열고 keyboard와 monitor를 출력했습니다.


그리고 다시 파일을 추가 모드로 열고 desk를 출력했습니다.


마지막으로 파일을 입력 모드로 열고 eof를 만날 때까지 읽어와서 콘솔에 출력했습니다.





반응형

'Programming > C++' 카테고리의 다른 글

[C++] 상속  (1) 2018.01.22
[C++] string 클래스  (0) 2018.01.22
[C++] this  (0) 2018.01.22
[C++] 객체 포인터  (0) 2018.01.22
[C++] 소멸자  (0) 2018.01.22