ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 전문가를 위한 C++ 정리(4)
    @ 16. 1 ~ 17. 1/C++ 2015. 5. 1. 22:48

    56. getline()

    string과 함께 사용하는 getline()이 있음..

    string myString;

    std::getline(cin, myString); //입력 스트림 객체와 string 객체를 참조형 파라미터로 받고 옵셔널하게 구분자를 파라미터로 설정

     

    57. 객체의 출력은 << 연산자 오버로딩

    58. 파일 스트림

    <fstream> 헤더에 ofstream, istream 클래스가 정의

    파일명과 열기모드를 파라미터로 받음(디폴트는 base::out 쓰기모드임, 파일 스트림의 위치가 제일 앞으로 초기화)

     

    ios_base::app 

    파일을 연 다음 쓰기 작업이 시작되기전에 스트림의 위치를 제일끝으로 

    덧붙이기 모드 

    ios_base::ate

    파일을 열자마자 스트림의 위치를 파일의 제일 끝으로 올김 

     

    ios_base::binary

    바이너리 모드로 데이터 입출력

     

    ios_base::in

    입력모드 

     

    ios_base::out

    출력모드 

     

    ios_base::trunc

    파일으 ㄹ열고 기본 데이터 삭제 

     

    seek() 메서드 : 입출력 스트림을 임의의 위치로 옮김

    입력 스트림에서는 seekg로 작동, 출력 스트림에서는 seekp가 자동으로 호출됨

    메서드는 2개의 오버로딩 버전이 있음..

    첫번째는 절대 위치를 지정하는 인자 하나만 받아 해당위치 이동

    outStream.seekp(ios_base::beg)

    두번쨰는 오프셋과 위치 두개의 인자를 받아 주어진 위치에서 상대적인 오프셋 위치로 이동

    outStream.seekp(2,ios_base::beg)

    //첫번째 인자는 얼마나 많이 이동할지 지정(ios_base::streampos 타입), 두번째는 이동 기준 위치(ios_base::streamoff 타입)

    스트림 위치 사전 정의된것 : ios_base::beg, ::end, ::cur(현재)

     

    tell()메서드 : 스트림의 현재 위치를 알수 있음

    현재 위치 값을 리턴함.(seek()을 통해 특정위치로 이동하기전 현재 위치를 기록해두는 용도로 사용함)

    똑같이 tellg tellp로 구분..

     

    59. 양방향 I/O

    fstream을 이용하면 istream과 ostream을 모두 상속받고 있어 양방향 스트림이 된다.

    즉 fstream ioData 이렇게 선언시

    출력과 입력과 모두 된다는것..

    * 양방향 스트림은 읽기 위치와 쓰기 위치를 유지하기 위해 두개의 분리된 포인터를 사용한다.

    이 때문에 읽기 모드와 쓰기 모드를 전환할때마다 seek()메서드를 이용해 스트림을 목적하는 위치로 이동시켜야함

    '@ 16. 1 ~ 17. 1 > C++' 카테고리의 다른 글

    난수, rand() 함수  (0) 2015.11.17
    Understanding and Using C Pointers(기억이 잘 안나는 부분)  (0) 2015.06.28
    전문가를 위한 C++ 정리(3)  (0) 2015.04.21
    전문가를 위한 C++ 정리(2)  (0) 2015.04.13
    예외처리  (0) 2015.03.28
Designed by Tistory.