
endl은 C++의 입출력 스트림 조작자(manipulator)로, 다음 두 가지 일을 합니다. - 출력 버퍼에 개행 문자(newline)를 삽입한다 (보통 '\n'과 같음). - 그 스트림을 즉시 플러시(flush)한다(스트림 버퍼의 내용을 실제 출력 장치나 파일로 밀어냄). 기술적으로는 std::endl은 std::basic_ostream에 대한 함수로 구현되어 있고, 호출 시 내부에서 개행 문자를 출력한 뒤 ostream::flush()를 호출하여 버퍼를 비웁니다. 선언은
에 있고 std 네임스페이스 안에 있습니다. 간단한 예: include std::cout << "Hello" << std::endl; // "Hello" 다음에 개행을 넣고 std::cout을 플러시 '\n'과의 차이: - std::cout << '\n'; 은 단순히 개행 문자만 출력하고 플러시는 하지 않습니다. - std::endl은 추가로 플러시를 한다. 따라서 즉시 눈에 보이게 하거나 상호작용(예: 프롬프트 출력 후 사용자 입력을 기다릴 때)할 필요가 있을 때 유용합니다. 주의할 점: - 반복문 등에서 자주 std::endl을 사용하면 매번 플러시가 발생하므로 성능 저하가 큽니다. 대량 출력 시에는 '\n'을 쓰고 필요할 때만 std::flush 또는 std::endl을 사용하세요. - std::flush는 개행 없이 스트림만 플러시하고 싶을 때 사용합니다. 요약하면, std::endl은 줄바꿈과 동시에 스트림을 플러시하는 조작자이며, 성능과 즉시성 요구에 따라 '\n' 또는 std::endl을 선택해 사용하면 됩니다.