이스트버드
꾸준함은 모든 것을 이긴다
이스트버드
전체 방문자
오늘
어제
  • 분류 전체보기 (76)
    • 네트워크 개념 (9)
    • 개발(Dev) 이야기 (53)
      • Algorithm (13)
      • Linux, Unix (13)
      • Xamarin (3)
      • C++ , Python (9)
      • Raspberry pi (4)
      • A.I. (7)
      • etc (4)
    • 운영(Ops) 이야기 (12)
      • 접근제어 솔루션 (Hiware) (1)
      • 데이터베이스 (9)
      • TroubleShooting (2)
    • MSA (1)
      • Kubernetes, Docker (1)
    • 일상 (1)

인기 글

반응형

티스토리

hELLO · Designed By 정상우.
이스트버드

꾸준함은 모든 것을 이긴다

개발(Dev) 이야기/C++ , Python

[C++] 기본입출력, 줄바꿈

2020. 3. 8. 15:31
반응형

C++에서의 기본 입출력은 간단하다.

//입력
cin >> num;

//출력
cout << num;

//한줄단위 입력
getline(cin, sentence);

 

줄바꿈 시엔 3가지 방법을 활용할 수 있다.

//endl 활용 - 4263ms
cout << num <<endl;

//'\n' 활용 - 34ms
cout << num << '\n';

//printf 활용 - 20ms
printf("%d\n", num); 

 

백준 온라인 저지의 알고리즘 문제를 풀면서 알게된 점인데, 줄바꿈 시에 endl을 사용하면 flush를 겸하기 때문에 가장 느리다.

반면, 출력 시 printf를 사용하면 cin, cout보다 빠르지만 scanf, printf와 섞어서 쓸 수 없다는 단점이 존재한다.

그러므로 아래 코드를 헤더파일 선언 ~ main함수 사이에 함께 사용해야 한다.

 

ios_base::sync_with_studio(false);

 이 함수의 기능은 C++의 iostream을 C의 stdio와 동기화시켜주는 역할을 한다.

 

cout << "Hi";
printf("Bye");
cout << "Hi";

가령, 위 코드에서 옵션 값이 true 일때는 순서대로 출력되지만 false 일 때는 어떤 순서로 출력될지 모른다.

따라서, ios_base::sync_with_studio()를 사용하면 iostream 함수인 cin, cout을 stdio 함수 getchar()와 같이 사용하면 안된다.

반응형

'개발(Dev) 이야기 > C++ , Python' 카테고리의 다른 글

[C++] 동적으로 2차원 배열 할당하기 - vector편  (0) 2020.03.25
[C++] Vector에서 Unique, erase를 활용한 중복순열  (0) 2020.03.18
[C++] pair, vector  (0) 2020.03.08
[C++] 동적으로 2차원 배열 할당 및 해제하기  (0) 2020.03.08
[C++] 순열 정렬방법 (next_permutation, prev_permutation)  (0) 2020.03.08
    '개발(Dev) 이야기/C++ , Python' 카테고리의 다른 글
    • [C++] Vector에서 Unique, erase를 활용한 중복순열
    • [C++] pair, vector
    • [C++] 동적으로 2차원 배열 할당 및 해제하기
    • [C++] 순열 정렬방법 (next_permutation, prev_permutation)
    이스트버드
    이스트버드
    이것저것 일단 해보고 보는 컴퓨터 전공 연구원의 파란만장한 스토리

    티스토리툴바