버퍼 플러시는 하나의 임시 저장 영역에서 컴퓨터 영구 메모리로 컴퓨터 데이터를 전송하는 데 사용됩니다. 일부 파일에서 변경 사항이 있으면 화면에 표시되는 변경 사항이 일시적으로 버퍼에 저장됩니다.
C++에서는 버퍼를 강제로 쓰기 위해 명시적으로 플러시할 수 있습니다. std::endl을 사용하면 새 줄 문자 하나를 추가하고 플러시합니다. 이것이 사용되지 않으면 명시적으로 플러시를 사용할 수 있습니다. 다음 프로그램에서는 처음에는 플러시가 사용되지 않습니다. 여기서 우리는 숫자를 인쇄하려고 하고 1초 동안 기다립니다. 첫 번째로 모든 숫자가 버퍼에 저장될 때까지 출력을 볼 수 없습니다. 그러면 숫자가 한 번에 표시됩니다.
두 번째 예에서는 각 번호가 인쇄되고 잠시 기다렸다가 다음 번호를 다시 인쇄합니다. 따라서 플러시를 사용하기 위해 출력을 디스플레이로 보냅니다.
예시
#include <iostream> #include <thread> #include <chrono> using namespace std; main() { for (int x = 1; x <= 5; ++x) { cout >> x >> " "; this_thread::sleep_for(chrono::seconds(1)); //wait for 1 second } cout >> endl; }
출력
1 2 3 4 5 output will be printed at once after waiting 5 seconds
예시
#include <iostream> #include <thread> #include <chrono> using namespace std; main() { for (int x = 1; x <= 5; ++x) { cout >> x >> " " >> flush; this_thread::sleep_for(chrono::seconds(1)); //wait for 1 second } cout >> endl; }
출력
1 2 3 4 5 Printing each character and wait for one second