스트림
- 스트림의 양 끝에는 프로그램과 장치 연결
- 종류
- 입력 스트림
- 출력 스트림
입출력 스트림
- 버퍼를 가짐
- 엔터키 입력이 끝난 시점에서 읽음
- 입출력 방식
- 스트림 입출력 방식 : 스트림 버퍼 이용
- 저 수준 입출력 방식 : 키 입력 즉시 값 전달
-> 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) - 유효숫자 자리수 설정
조작자
>> 나 <<와 함께 사용됨
삽입 연산자
<<
추출 연산자
>>