Kong Eunho

C++ 입출력 시스템

2025년 11월 20일 09시
카테고리 - LECTURE, 객체지향프로그래밍II


객체지향프로그래밍II(김정준) 12주차 강의내용

스트림

C++ 입출력

입출력 방식

char ch;
cin >> ch; // 키보드로 문자 입력. 한글 문자 읽을 수 없음
클래스 설명
ios 모든 입출력 스트림 클래스들의 기본(Base) 클래스. 스트림 입출력에 필요한 공통 함수와 상수, 멤버 변수 선언
istream,
ostream,
iostream
istream은 문자 단위 입력 스트림. ostream은 문자 단위 출력 스트림. iostream은 문자 단위로 입출력을 동시에 할 수 있는 스트림 클래스
ifstream,
ofstream,
fstream
파일에서 읽고 쓰는 기능을 가진 파일 입출력 스트림 클래스. 파일에서 읽을 때는 ifstream 클래스를, 파일에 쓸 때는 ofstream 클래스를, 읽고 쓰기를 동시에 할 때 fstream 클래스 이용


표준 입출력 스트림 객체

포맷 입출력

포맷 플래그

플래그 의미
ios::skipws 0x0001 입력시 공백 문자(스페이스, 탭, 개행문자)를 무시
ios::unitbuf 0x0002 출력 스트림에 들어오는 데이터를 버퍼링하지 않고 바로 출력
ios::uppercase 0x0004 16진수의 A~F, 지수 표현의 E를 대문자로 출력
ios::showbase 0x0008 16진수이면 0x를, 8진수이면 0을 숫자 앞에 붙여 출력
ios::showpoint 0x0010 실수 값에 대해, 정수 부분과 더불어 소수점 이하의 끝자리들을 0으로 출력
ios::showpos 0x0020 양수에 대해 + 기호 출력
ios::left 0x0040 필드를 왼쪽 맞춤(left-align) 형식으로 출력
ios::right 0x0080 필드를 오른쪽 맞춤(right-align) 형식으로 출력
ios::internal 0x0100 부호는 왼쪽 맞춤으로 숫자는 오른쪽 맞춤으로 출력
ios::dec 0x0200 10진수로 출력. 디폴트 설정
ios::oct 0x0400 8진수로 출력
ios::hex 0x0800 16진수로 출력
ios::scientific 0x1000 실수에 대해 과학 산술용 규칙에 따라 출력
ios::fixed 0x2000 실수에 대해 소수점 형태로 출력
ios::boolalpha 0x4000 설정되면, 논리값 true를 "true"로, false를 "false"로 출력하고, 설정되지 않으면, 정수 1과 0으로 출력
cout.unsetf(ios::dec); // 10진수 해제
cout.setf(ios::hex); // 16진수로 설정

cout.setf(ios::dec | ios::showpoint); // 10진수 설정, 소수점 이하 0으로 출력


조작자

매개변수 없는 조작자
조작자 I/O 용도
endl O 스트림 버퍼를 모두 출력하고 다음 줄로 넘어감
oct O 정수 필드를 8진수 기반으로 출력
dec O 정수 필드를 10진수 기반으로 출력
hex O 정수 필드를 16진수 기반으로 출력
left O 왼쪽 맞춤으로 출력
right O 오른쪽 맞춤으로 출력
fixed O 실수 필드를 고정 소수점 방식으로 출력
scientific O 실수 필드를 과학 산술용 방식으로 출력
flush O 스트림 버퍼 강제 출력
showbase O 16진수의 경우 0x로, 8진수의 경우 0을 앞에 붙여서 출력
noshowbase O showbase 지정 취소
showpoint O 실수 값에 대해, 정수 부분과 소수점 이하의 끝자리 이후 남은 공간을 0으로 출력
noshowpoint O showpoint 지정 취소
showpos O 양수인 경우 + 부호를 붙여 출력
skipws I 입력 스트림에서 공백 문자를 읽지 않고 건너뜀
noskipws I skipws 지정 취소
boolalpha O 불린 값이 출력될 때, "true" 혹은 "false" 문자열로 출력
매개변수를 가진 조작자
조작자 I/O 용도
resetioflags(long flags) IO flags에 지정된 플래그들 해제
setbase(int base) O base를 출력할 수의 진수로 지정
setfill(char cFill) O 필드를 출력하고 남은 공간에 cFill 문자로 채움
setioflags(long flags) IO flags를 스트림 입출력 플래그로 설정
setprecision(int np) O 출력되는 수의 유효 숫자 자리수를 np개로 설정. 소수점(.)은 별도로 카운트
setw(int minWidth) O 필드의 최소 너비를 minWidth로 지정


사용자 정의 조작자 함수 원형

istream& manipulatorFunction (istream& ins)
ostream& manipulatorFunction (ostream& outs)


삽입 연산자(<<)


추출 연산자(>>)

◀ 이전 글 LECTURE, 인공지능개론
비지도학습 - Clustering
2025-11-11
목록으로 다음 글 ▶ LECTURE, 인공지능개론
신경망
2025-11-25