한 문자씩 버퍼에 출력하는 put 메소드

 출력 스트링 스트림에서도 put 메소드를 이용하여 버퍼에 하나의 문자식 입력할 수 있다. 간단한 예를 보면 다음과 같다.

#include <strstrea>
/* 우분투 10.04, g++-4.3.3 버전에서는 다음의 헤더파일을 사용하도록 한다.
 * #include <iostream>
 * #include <backward/strstream>
*/

using namespace std;

void main(void)
{
  ostrstream intStream;
  char intData = ‘0’;

  // 1~10 까지 숫자와 공백을 버퍼에 출력
  for(int count = 0; count < 10; count++, intData++) {
    intStream.put(intData);
    intStream.put(‘ ‘);
    if(intStream.fail()) {
      cerr << “버퍼로의 출력 에러 발생” << endl;
      return;
    }
  }

  // 마지막에 NULL 문자 입력후 화면에 출력
  intStream << ends;
  cout intStream.rdbuf() << endl;
}

출력 스트림에서 한문자씩 출력하기.

 cin 이 제공하는 메소드 중 하나의 문자를 입력받는 get 메소드가 존재하는 것처럼 cout에는 하나의 문자를 출력하는 put 메소드가 존재한다. put 메소드의 사용에는 제약이 따르게 되는데, 이는 put 메소드에서 사용 가능한 파라미터는 단지 하나의 문자(character)뿐이라는 것이다.

 물론 숫자를 넘길 수도 있는데, 이 또한 내부에서 문자로 변환하여 화면에 출력하게 된다. 예를 들어 다음을 실행시켜 보자.

int letter = 65;
cout.put(letter);

char clet = ‘B’;
cout.put(clet);

 위의 명령을 실행시키면 화면에 A와 B가 출력된다. put 메소드는 하나의 문자만을 입력받고 출력하는 작업이 반복적으로 이루어져야 하는 경우에 유용하게 사용할 수 있을 것이다.