[Modern C++] 7. C++의 입출력

윤정민·2023년 7월 7일
0

C++

목록 보기
21/46

1. C++ 입출력 라이브러리

1.1. ios_base Class

  • c++의 모든 입출력 클래스는 ios_base를 기반 클래스로 사용
  • ios_base는 스트림의 입출력 형식 과련 데이터를 처리

1.2. ios Class

  • 실제로 스트림 버퍼를 초기화
    • 스트림 버퍼: 데이터를 내보내거나 받아들이기 전에 임시로 저장하는 곳
  • eof: 파일을 읽다가 끝에 도달했는지 확인하는 함수
  • good: 현재 입출력 작업을 잘 수행할 수 있는지 확인하는 함수

1.3. istream Class

  • 실제로 입력을 수행하는 클래스
    • operator>>가 정의되어 있음
    • cin은 istream 클래스의 객체 중 하나

2. 스트림 버퍼

모든 입출력 객체들은 이에 대응되는 스트림 객체를 가지고 있다. C++에서도 입출력 라이브러리에 이에 대응되는 스트림 버퍼 클래스가 있는데 streambuf클래스다.

  • streambuf는 스트림에서 입력을 받던지, 출력을 하던지 혹은 입력과 출력을 동시에 수행함

  • streambuf 클래스는 스트림의 상태를 나타내기 위해 세 개의 포인터를 정의함

    • 시작 포인터
    • 다음으로 읽을 문자 포인터
    • 버퍼의 끝부분 포인터
  • 입력 버퍼와 출력 버퍼를 구분해 각각 get areaput area라 부르는데, 이에 따라 각각을 가리키는 포인터도 gp를 붙여서 표현함

profile
그냥 하자

0개의 댓글