1. endl의 동작 원리
std::cout << "Hello" << std::endl;
- 추가로 버퍼를 비우는(flush) 작업을 수행해서 줄바꿈한다.
- 버퍼를 비운다는 것은 출력 버퍼에 쌓여 있는 데이터를 즉시 출력 장치(콘솔)로 내보내는 작업을 의미한다.
2. \n의 동작 원리
std::cout << "Hello\n";
\n은 단순히 줄바꿈만 수행한다.
- 버퍼를 비우지 않기 때문에,
endl보다 더 효율적이다.
3. endl 사용 시기
- 출력 버퍼를 즉시 비워야 할 때 사용한다.
- 예를 들어, 디버깅 시 출력 결과를 실시간으로 확인하고 싶을 때 유용하다.
- 프로그램이 오류로 강제 종료될 가능성이 있을 때, 출력 버퍼에 남아 있는 내용이 사라질 수 있으므로
endl을 사용하여 버퍼를 비운 후 출력하는 것이 좋다.
4. \n 사용 시기
- 반복적인 출력이 필요한 경우,
\n을 사용하는 것이 더 효율적이다.
- 예: 파일 출력, 반복문을 통한 다량의 콘솔 출력