홍카나의 공부방

[C++] std::endl 과 std::flush의 차이점 본문

Data Structure + Algorithm

[C++] std::endl 과 std::flush의 차이점

홍문관카페나무 2024. 8. 6. 14:37
#include <iostream>

using namespace std;

int main()
{
    cout << "Hell, World!" << flush;
    cout << "Hell, World!" << endl;
    // 출력 결과 : Hell, World!Hell, World!
    
    return 0;
}

 

두개 다 Hell, World!가 출력되겠지만, 내부 동작의 차이점은 무엇일까?

 

std::endl

C++에서 출력 스트림은 데이터를 저장하기 위해 내부적으로 버퍼를 사용한다. endl(endline)은 출력 스트림 맨 뒤에 줄바꿈 문자를 추가하고, 출력 스트림의 내부 버퍼에 있는 데이터를 모두 비우는 동작(flush)을 한다.

 

std::flush

flush는 출력 스트림 맨 뒤에 줄바꿈 문자를 추가하지 않고, 출력 스트림의 내부 버퍼에 있는 데이터를 모두 비우는 동작(flush)을 한다.

 

반응형