Post

[C++] 스트림이란? #17

1. 스트림이란?

C++은 stream이라는 것으로 파일이나 콘솔의 입출력을 다룹니다. stream은 실제 입력이나 출력이 표현된 데이터의 흐름을 의미합니다. 따라서 stream은 운영체제로 인해 생겨, 프로그램과 입출력 기기 사이를 연결해주는 역할을 합니다.

2. 버퍼란?

버퍼는 스트림 내부에 존재하는 임시 메모리 공간입니다. 버퍼를 이용하면 입력과 출력을 더 효율적으로 처리할 수 있게됩니다.

예를 들어, 버퍼를 사용하지 않는다면 키보드 입력에서 키를 누르자마자 바로 프로그램으로 전달되어 문자열을 입력하는 경우 전달을 여러번 해야합니다.
하지만 버퍼를 사용한다면 임시 메모리에 문자열을 저장해 두었다가 개행문자가 입력되는 순간
프로그램으로 전달하면 되므로 훨씬 효율적이게 됩니다.

2-1. 버퍼의 장점

  • 문자를 묶음씩 전달하므로, 성능이 향상됩니다.
  • 입력 도중 문자를 수정할 수 있습니다.

2-2. 버퍼의 단점

  • 빠른 반응을 요구하는 게임의 경우 버퍼가 오히려 악영향을 미칠 수 있습니다.

따라서 버퍼는 개발하는 프로그램의 목적에 맞게 사용되어야 합니다.

This post is licensed under CC BY 4.0 by the author.