버퍼를 플러시하기 위해 cout 문의 끝에 endl을 사용하는 것에 대해 어려운 방법을 배웠습니다. 내가 혼란스러워하는 이유는 endl이 때때로 필요한 경우 일 뿐이 기 때문입니다. 보통 할 수 있습니다cout << "텍스트"는 시간의 일부만 표시됩니다.
cout << "test";
그리고 테스트가 표시됩니다. 그러나 긴 콘솔 프로그램의 한가운데서 나는 비슷한 cout 문을 가질 것이고 아무 것도 표시되지 않을 것이고 코드는 계속 움직이지 않을 것입니다. endl을 끝에 추가하면 버퍼를 비우고 텍스트를 표시하여 문제를 해결합니다. 그러나 어떤 경우 버퍼가 자동으로 플러시되고 어떤 경우에는 수동으로 플러시됩니까? 문제를 재현하는 방법을 모르기 때문에 샘플 코드를 제공 할 수는 없지만 대부분의 사람들이 이것을 보았다고 가정합니다.
대부분의 라이브러리는 줄 바꿈 문자'\ n'에서 플러시하므로, 끝내려면'endl'이 필요 없습니다. 물론 개행을 원하지 않는다면'flush'를 대신 사용할 수 있습니다. –