1. 개행이란?
개행은 줄을 바꾸는 것이다.
cout<<"Hello\\n";
cout<<"Hello"<<endl;
둘 다 줄바꿈이 된다.
2. \n
\n은 줄바꿈 문자다.
cout<<"Hello\\n";
cout<<"C++";
출력 결과
Hello
C++
특징:
- 줄바꿈만 한다
- 속도가 빠르다
- 코딩테스트에서 주로 사용한다
3. endl
endl은 줄바꿈 + 출력 버퍼 비우기를 한다.
cout<<"Hello"<<endl;
cout<<"C++";
특징:
- 줄바꿈을 한다
- flush까지 수행한다
- 반복해서 많이 쓰면 느릴 수 있다
4. 차이점 정리
| 구분 | \n | endl |
| 기능 | 줄바꿈 | 줄바꿈 + flush |
| 속도 | 빠름 | 상대적으로 느림 |
| 추천 상황 | 일반 출력, 코딩테스트 | 즉시 출력 확인 필요할 때 |
5. 버퍼와 flush 간단 정리
- 버퍼란?
버퍼(buffer)는 출력할 내용을 바로 화면에 보내지 않고, 잠시 모아두는 임시 공간이다.
이 출력 내용은 상황에 따라 바로 출력되지 않고 버퍼에 잠시 쌓일 수 있다.cout<<"Hello";
버퍼를 사용하는 이유는 출력을 한 번에 처리해서 속도를 높이기 위해서다. - flush란?
flush는 버퍼에 쌓인 내용을 강제로 즉시 출력하는 것이다.
즉, 버퍼에 모아둔 출력 내용을 바로 화면에 보여주게 만든다.cout<<flush; - endl과의 관계
은 단순 줄바꿈이 아니라 아래와 비슷하다.cout<<endl;
=> 그래서 endl은 줄바꿈도 하고, 버퍼도 비운다.(flush) => \n 보다 느림cout<<'\n'<<flush;
6. 백준 2741 endl vs '\n'
- endl 사용
// endl 사용
#include <iostream>
using namespace std;
int main (){
int a;
cin >> a;
for (int i=1 ; i<=a ; i++){
cout << i << endl ;
}
return 0;
}

- \n 사용
// \n 사용
#include <iostream>
using namespace std;
int main (){
int a;
cin >> a;
for (int i=1 ; i<=a ; i++){
cout << i << "\n" ;
}
return 0;
}

7. 한 줄 결론
단순 줄바꿈은 \n, 즉시 출력까지 필요하면 endl 을 사용하면 된다.
(코테에서는 \n 사용 권장)
'언어 문법정리 > c++' 카테고리의 다른 글
| [C++] 문자형태의 '숫자' -> 정수 숫자로 바꾸기 (’7’ → 7) (0) | 2026.05.02 |
|---|---|
| [C++] sort() 함수 정리 (0) | 2026.05.01 |
| [C++] erase() 함수 정 및 사용법 (0) | 2026.04.27 |
| [C++] using namespace std; 의 의미와 사용 이유 (0) | 2026.04.27 |
| [C++] Vector와 관련 함수들 (0) | 2026.04.23 |
