728x90
반응형
C++에서 파일 관련하여 제공하는 Stream 클래스는 다음과 같다.
- ofstream : 파일에 쓰는 기능의 Stream class
- ifstream : 파일을 읽는 기능의 Stream class
- fstream : 파일에 대한 읽고 쓰는 기능을 모두 갖춘 Stream class
- wifstream : 유니코드 문자로 쓰인 텍스트 파일을 읽는 Stream class
- wofstream : 유니코드 문자를 텍스트 파일에 쓰는 Stream class
<파일 쓰기 예>
#include <locale>
#include <fstream>
using namespace std;
int main()
{
setlocale(LC_ALL, "");
ofstream fout;
fout.open("D:\\sample.txt");
fout << "Writing" << endl;
fout.close();
return 0;
}
<파일 읽기 예>
#include <locale>
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main()
{
setlocale(LC_ALL, "");
ifstream fin;
fin.open("D:\\sample.txt");
if (!fin.good())
{
wcout << L"파일 열기 실패" << endl;
}
string str;
while (!fin.eof())
{
getline(fin, str);
cout << str << endl;
}
fin.close();
return 0;
}
open() 함수의 mode 설정
ios::in : input
ios::out : output
ios::ate : at the end. 파일의 맨 끝으로 이동한다.
ios::binary : binary
ios::app : 이어 쓰기
ios::trunc : 새로 쓰기
해당 모드는 or 연산자 ( | )를 이용하여 여러 개의 모드를 사용할 수 있다.
Stream의 상태를 검사하는 함수
bad() : 읽거나 쓰기 실패 시 true
fail() : bad()와 같지만 숫자를 읽을 때 문자가 포함되어 있는 경우에도 true
eof() : 파일의 끝에 도달한 경우 true
good() : 위의 3 경우가 아닌 경우 true
tellg() : get 포인터의 위치를 pos_type형으로 리턴. (pos_type은 일반 정수 범위를 넘을 수 있는 정수)
tellp() : put 포인터 위치를 리턴
seekg() : get 포인터의 위치를 변경
seekp() : put 포인터의 위치를 변경
728x90
반응형
'Program Language > C & C++' 카테고리의 다른 글
[C++] wsprintf → swprintf_s (float 문제 해결) (0) | 2021.11.16 |
---|---|
[C++] 변수 묶어 사용하기 (pair, tuple) (0) | 2021.11.15 |
[C++] RAII Pattern (2) | 2021.10.26 |
[C++] std::thread 종료 (abort() has been called) (0) | 2021.10.26 |
[C++] 스마트 포인터 (0) | 2021.10.25 |