C++ 입출력 스트림 버퍼, 단일 문자 입/출력 함수
입출력 스트림 버퍼
입출력이란?
입력과 출력을 의미한다.
프로그래밍에서 입력이란?
-> 외부의 데이터가 프로그램 내부로 흘러 들어오는 것.
프로그래밍에서 출력이란?
-> 프로그램 내부에서 외부로 데이터가 흘러 나가는 것.
스트림이란?
프로그래밍에서 스트림이란 통로라는 의미로 사용된다.
-> 가상의 통로이다.
버퍼란?
스트림 중간에 있는 메모리 블록
데이터 송수신의 효율성 때문에 존재한다.
표준 스트림
stdin : 표준 입력 스트림. 기본 키보드 대상
stdout: 표준 출력 스트림. 기본 모니터 대상
stderr: 표준 오류 스트림. 기본 모니터 대상 // 사용하지 않을 것
단일 문자 출력 함수
fputc()
int_Character : 출력할 문자를 전달
FILE* _Stream : 어떤 스트림을 이용할 것인지 전달
fputc('A', stdout);
단일 문자 입력 함수
fgetc()
char ch = fgetc(stdin); // 입력
fputc(ch, stdout); // 출력
여기서 abc라고 입력했을 때 출력되는 문자는 a만 나오게 된다.
이유는 간단하게 단일 문자 입출력 함수는 단일 문자만 입/출력이 가능하기 때문이다.
단일 문자 입출력 함수가 반환하는 값
-> 함수 호출이 성공하면 아스키코드의 정수 값을 반환한다.
-> 실패 시 EOF라는 것을 반환한다.
EOF란
-> End Of File의 약자.
-> 파일의 끝을 표현하기 위해 정의해 놓았다!
-> 더 이상 읽을 데이터가 없을 경우 EOF 반환하여 읽기를 끝낸다.
-> EOF는 -1의 값을 가진다.
반환 타입이 char가 아닌 int인 이유
-> char 자료형은 시스템 환경에 따라 unsigned로 표현될 수 있다.
-> char가 unsigned로 표현되면 -1인 EOF를 표현할 수 없게 된다.
-> 하지만, int 자료형은 어떤 환경에서든 signed를 유지한다.
-> EOF를 표현할 수 있다.