..

Search

76) 파일 모드

76) 파일 모드

파일 모드


파일 모드

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+"

파일을 읽고 쓰는 것이 둘 다 가능한 모드로 개방함.

파일이 없으면 새 파일을 만들고,

파일이 있으면 해당 파일의 모든 데이터를 지우고 개방함.


연습문제