<객체> 11. c++ 입출력 시스템

정지민·2023년 11월 23일
0

객체 프로그래밍

목록 보기
10/11

스트림

  • 스트림의 양 끝에는 프로그램과 장치 연결
  • 종류
    - 입력 스트림
    - 출력 스트림

입출력 스트림

  • 버퍼를 가짐
  • 엔터키 입력이 끝난 시점에서 읽음
  • 입출력 방식
    - 스트림 입출력 방식 : 스트림 버퍼 이용
    - 저 수준 입출력 방식 : 키 입력 즉시 값 전달

-> c++은 스트림 입출력 방식만 지원

문자를 한 바이트의 char로 처리

  • 지금도 cin으로 한글을 문자 단위로 읽을 수 없음

입출력 클래스

기본 - ios

입력 - istream
출력 - ostream
입출력 - iostream

파일 읽기 - ifstream
파일 쓰기 - ofstream
파일 읽기, 쓰기 - fstream

cin - 키보드
cout - 스크린
cerr - 스크린 / 오류메세지 출력 / 버퍼 거치지 않음
clog - 스크린 / 오류메세지 출력 / 버퍼 거침

ostream 멤버 함수

  • ostream& put(char ch)
    - ch의 문자를 출력
  • ostream& write(char* str, int n)
    - str 배열에 있는 n개의 문자 출력
  • ostream& flush()
    - 현재 스트림 버퍼에 있는 내용 강제 출력

istream 멤버 함수

  • int get()
    - 입력값이 오류나 iof를 만나면 -1 리턴
  • istream& get(char& ch)
    - 입력값 받아 ch에 저장

문자열 입력

  • instream& get(char* s, int n)
    - n-1개 문자 읽어 배열 s에 저장하고 마지막에 '\0'삽입
    - '\n' 만나면 '\0' 삽입하고 리턴
  • 엔터키 만나면 \n는 스트림 버퍼에 남아있음
    -> cin.get() / cin.ignore(1) 쓰면 해결

한 줄 읽기

  • istream& get(char* s, int n, char delim='\n')
  • istream& geline(char* s, int n, char delim='\n')
    - delim에서 지정된 문자를 스트림에서 제거

입력 문자 건너 띄기와 문자 개수 알아내기

  • istream& ignore(int n=1, int delim=EOF)
    - 입력 스트림에서 n개의 문자 제거
  • int gcount()
    - 바이트수 리턴

포맷 플래그

  • Long setf(Long flags) - 설정
  • Long unsetf(Long flags) - 해제

포맷 함수 활용

  • int width(int minWidth) - 너비
  • char fill(char cFill) - 채움
  • int precision(int np) - 유효숫자 자리수 설정

조작자

>> 나 <<와 함께 사용됨

삽입 연산자

<<

추출 연산자

>>

0개의 댓글