반응형
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 |