상세 컨텐츠

본문 제목

기본 파일 관리

C++/파일처리

by nowpassion 2008. 5. 11. 12:09

본문

1. 파일 생성
- 파일도 마찬 가지고 스트림의 일부로 보면 출력 스트림을 이용하여 파일을 만들어
  낼 수 있습니다.

2. 파일에 입력 및 출력
- 스트림을 열어 둔 이후 스트림관련 연산자를 이용하면 ( <<, >> ) 가능합니다.

예제1) 출력용 파일
사용자 삽입 이미지

 - 실행결과
사용자 삽입 이미지


 







- 파일내용
사용자 삽입 이미지


 












- 위의 결과와 같이  파일이 생성되었고 입력된 내용이 확인었습니다.
- 실제 파일도 스트림이므로 오버로딩된 연산자를 통해 입출력이 되었음을 알 수 있습니다.
- 실제 객체 생성후 함수를 이용하여 파일을 관리할 수도 있습니다.

   예) ofstream file_stream;
        file_stream.open("client.dat", ios::out);

- 34번째 줄에서 while의 조건문은 operator void *을 호출하고 이 함수에 의해
   상태비트를 보고 True와 False가 나눠집니다.(failbit, badbit, eofbit)
   물론 명시적으로는 나타나있지는 않지만 암시적으로 호출이 이루어집니다.
   그러므로 eof를 입력하면 0을 반환하여 반복문이 끝나게 되는 것입니다.

- 위 코드에서는 while문이 종료되면 프로그램이 종료되면서 ofstream의 소멸자가 자동적으로
  호출되지만 실제 파일을 닫는 멤버함수를이용하여 파일을 닫을 수 있습니다.

   예) file_stream.close();

예제2) 파일 읽기 및 출력
사용자 삽입 이미지

- 실행결과
사용자 삽입 이미지

 







- 파일로 출력과 마찬가지로 스트림을 만든후 읽어들이는 것은 같습니다. 방향만 틀려질 뿐이죠.

2. 파일의 포인터(위치)관련 함수
- 항상 파일을 순차적으로만 읽을 수 없기때문에 이를 위해 함수를 제공합니다.
- istream : seekg(seek get), ostream : seekp(seek put)
- 아래 함수는 파일 위치 포인터를 반환합니다.
- istream : tellg(seek get), ostream : tellp(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의 끝으로 이동


'C++ > 파일처리' 카테고리의 다른 글

임의 위치로의 기록 및 검색  (0) 2008.05.11
파일의 위치 설정  (0) 2008.05.11
파일 처리  (0) 2008.05.11

관련글 더보기