본문 바로가기 메뉴 바로가기

Go, Vantage point

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • RSS

Go, Vantage point

검색하기 폼
  • 분류 전체보기 (457)
    • Cloud (56)
      • AWS (48)
      • GCP (5)
      • Terraform (2)
      • 네이버 클라우드 (1)
    • CS (88)
      • OS (7)
      • 네트워크 & Ubuntu (30)
      • Docker (12)
      • Kubernetes (10)
      • Elastic Search (4)
      • GNN (8)
      • 하드웨어 (3)
      • 기타 (14)
    • 프로그래밍 (0)
      • Spring (18)
      • Spring DataBase (19)
      • C++ (3)
      • Unity (6)
      • Java (1)
    • 알고리즘 공부 (255)
      • 알고리즘 문제 분류 (16)
      • 백준 (134)
      • LeetCode (59)
      • 알고스팟 (36)
      • 알고리즘 기법 (9)
      • 기타 사이트 (1)
    • 독서 (8)
      • 프로그래밍 서적 (8)
    • SW 활동 (2)
  • 방명록

c++ flush (1)

프로필사진

Go, Vantage point

가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.


Github | https://github.com/overnew/

Blog | https://everenew.tistory.com/





[C++] cout에서 endl보다는 \n이 권장되는 이유

백준 문제를 풀던 중 분명히 예제 입력에서는 제대로 된 출력이 나오는데도 정답 소스코드를 제출하는 경우 시간 초과가 발생하는 경우가 있었다. 아무리 코드를 뜯어보아도 최적화에는 문제가 없다고 생각했는데 cout에서 주로 개행을 위해 사용되는 endl을 '\n'으로 바꿔주자 정답을 맞힐 수 있었다. 그러한 이유는 다음과 같다. endl의 경우 스트림 버퍼의 끝에 \n을 삽입해주고 flush까지 수행하여 버퍼를 비워준다. std::cin과 같이 입력을 받을 경우, 이전의 데이터가 버퍼에 남아있으면 사용자의 값입력을 받지 않고 그대로 버퍼의 값을 사용한다. 즉 버퍼를 깨끗하게 지워주어야 다음 값을 입력받을 수 있다. 이때 flush를 통해 버퍼를 비워줄 수 있다. C에서는 fflush(stdin); 와 같이 ..

프로그래밍/C++ 2020. 10. 9. 23:37
이전 1 다음
이전 다음
반응형
인기글
Total
Today
Yesterday
«   2025/05   »
일 월 화 수 목 금 토
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.