파일 모드
파일 모드
C++에서 파일 모드란 파일의 사용 용도와 파일의 데이터를 어떤 방식으로 입출력할지를 결정하는 상수입니다.
파일 모드 상수는 ifstream(또는 ofstream) 객체를 파일의 이름으로 초기화하거나, open() 멤버 함수를 통해 스트림에 파일을 연결할 때 파일 모드를 지정하기 위한 두 번째 매개변수로 사용됩니다.
예제
// ifs라는 ifstream 객체를 생성하고, example.txt와 읽기 모드로 연결함.
ifstream ifs("example.txt", ios_base::in);
기본적으로 ifstream의 생성자와 open() 멤버 함수는 파일 모드의 디폴트 인수로 ios_base::in을 제공합니다.
또한, ofstream의 생성자와 open() 멤버 함수는 파일 모드의 디폴트 인수로 ios_base::out | ios_base::trunc을 제공합니다.
C++ 파일 모드 상수
C++에서 제공하는 파일 모드 상수는 다음과 같습니다.
파일 모드 상수 | 설명 |
---|---|
ios_base::in | 파일을 오로지 읽는 것만 가능한 모드로 개방함. |
ios_base::out | 파일을 쓰는 것만이 가능한 모드로 개방함. |
ios_base::ate | 파일을 개방할 때 파일의 끝으로 파일 포인터를 이동시킴. |
ios_base::app | 해당 파일의 맨 끝에서부터 데이터를 추가함. |
ios_base::trunc | 파일이 있으면 해당 파일의 모든 데이터를 지우고 개방함. |
ios_base::binary | 바이너리 모드로 개방함. |
이렇게 제공되는 파일 모드 상수는 단독으로 사용할 수도 있고, 여러 모드를 조합하여 사용할 수도 있습니다.
C++에서 자주 사용되는 파일 모드 조합은 다음과 같습니다.
파일 모드 상수 | C언어 파일 모드 | 설명 |
---|---|---|
ios_base::out | ios_base::trunc | "w" |
파일을 쓰는 것만이 가능한 모드로 개방함. |
ios_base::out | ios_base::app | "a" |
파일을 쓰는 것만이 가능한 모드로 개방함. 파일이 없으면 새 파일을 만들고, 파일이 있으면 해당 파일의 맨 끝에서부터 데이터를 추가함. |
ios_base::in | ios_base::out | "r+" | 파일을 읽고 쓰는 것이 둘 다 가능한 모드로 개방함. |
ios_base::in | ios_base::out | ios_base::trunc | "w+" |
파일을 읽고 쓰는 것이 둘 다 가능한 모드로 개방함. 파일이 없으면 새 파일을 만들고, 파일이 있으면 해당 파일의 모든 데이터를 지우고 개방함. |