putchar와 출력 스트림

김관중·2024년 11월 28일

C++

목록 보기
14/15
printf("Hello World!");
cout << "Hello World!";

위 두개의 출력 함수는 버퍼링되는(버퍼에 저장되며 실행되는) 함수이다.

반면 putchar는 버퍼링되지 않고 바로 출력하기 때문에

putchar와 같이 사용하게 되면 버퍼가 차지 않은 상태에는

putchar가 먼저 출력되기 때문에 아래와 같은 예제에서

의도하지 않은 출력을 받을 수 있다.

for(int i=0;i<100;i++){
	cout << i+1 << ' ';
    if(i%10==9) putchar('\n');
}

out
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
1 2 3 4 5 6 7 8 9 10 ... 100

이를 방지하기 위해서는 putchar를 쓰지 않고 printf와 cout을 쓰거나

flush를 해주면 된다. (버퍼를 비워주면 된다.)

profile
꾸준히 학습하기

0개의 댓글