C++ 프로그램은 스트림(stream)이라는 흐름을 통해 입출력을 다룬다.
버퍼란 스트림 내부 임시 메모리 공간을 말한다.
버퍼의 장점과 단점
버퍼를 통해 문자들을 묶어서 한번에 프로그램에 전달한다. 그 결과 전송 시간이 줄어들고 프로그램의 성능이 향상된다. 또한 사용자가 문자를 잘못 입력하였을 경우 중간에 수정이 가능하다. 하지만, 빠른 반응이 요구되는 상황에서는 불리하다.
std::endl의 경우 buffer를 자동으로 비우는 반면, \n의 경우를 버퍼를 비우지 않는다. 따라서 \n의 속도가 endl보다 빠르다.