C언어에서의 스트림의 내부 출력 버퍼를 비우도록 한다. 이 뜻이 무슨 뜻인지 모르겠습니다.
글쓴이: ikpil / 작성시간: 화, 2008/12/23 - 9:05오후
C언에서 입출력 스트림을 이용하여 출력하거나 입력받는 다는 것을 알게 되었습니다.
하지만 .. 이 스트림이 버퍼를 비운다 라는 말은 무슨 말인지 모르겠습니다.
이 궁금증은 endl 때문에 생긴 것입니다.
endl은 스트림의 내부 출력 버퍼를 비우도록 강제 한다고 되어 있습니다.
그래서 불필요하게 endl 을 사용하는 것 보다 "\n"을 사용하는 것을 권한다고 합니다.
그런데 이게 무슨 말인지 모르겠습니다.
몇가지 추측을 하자면, 스트림에는 버퍼가 존재하며, 이 버퍼에 데이터가 쌓입니다.
예를 들어 cout << a << b << "\n" << c << d 라고 했을 때
a b c d 는 출력스트림 버퍼에 쌓이고 한번에 ab 다음줄 cd 가 출력 되는데.
만약 cout << a << b << endl << c << d 라고 했을 때
a b만 출력 스트림 버퍼에 쌓이고 쌓이고, 출력 된 후에 버퍼를 비우고
c d 를 출력 한다. 로 해석 되는 것인가요?
으흠;
Forums:
네 맞습니다. 버퍼를
네 맞습니다.
버퍼를 비운다는 의미는 현재 버퍼에 들어있는 데이터를 모두 출력장치로 전송을 하고
출력된 데이터는 버퍼상에서 삭제를 한다는 의미입니다.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
댓글 달기