-
[STL] iostream, std, 입출력(cin, cout)Algorithm/C++ 2019. 11. 5. 19:34
C++에서 사용하는 표준 입출력 개체인 cout과 cin을 사용하려면 iostream 헤더파일을 include하여 std 네임 스페이스를 사용해야 한다.
12#include <iostream>using namespace std;1. iostream
STL(Standard Template Library)에서 제공하는 클래스 중 하나로, 데이터 입출력 시에 사용하는 클래스이다.
2. namespace
namespace는 모든 식별자(변수, 함수, 형식 등의 이름)가 고유하도록 보장하는 코드 영역이다. 두개 이상의 독립된 코드가 함께 사용될 때 서로 이름이 충돌하는 문제를 방지하기 위해 namespace 키워드를 통해 독립된 namespace를 선언할 수 있다.
3. std
원래 C++ 설계 시에는 C++ 라이브러리의 모든 식별자(ex. cin, cout)를 직접 사용할 수 있었다. 하지만 이럴 경우, 사용자의 식별자 이름과 충돌할 수 있는 우려가 있고, 표준 라이브러리가 업데이트될 경우 이전 버전과 충돌이 일어나 이후 버전에서 컴파일이 되지 않을 우려가 있다. 그래서 C++에서는 표준 라이브러리의 모든 기능을 std namespace로 옮겼다.
cin, cout을 사용한 간단한 예제를 살펴보자.
1234567891011121314#include <iostream>using namespace std;#include <iomanip>int main(){int a;double pi = 3.14159;cin.sync_with_stdio(false);cin.tie(NULL); //cin의 실행 속도를 더 높여줌cin >> a; //scanf("%d", &a)cout << "Hello world!" << a << "aaaa" << 3 << setprecision(3) << pi; //cout chainingreturn 0;}위 코드는 cin을 통해 변수 a의 값을 입력받으면, a의 값과 pi의 값을 출력해주는 코드이다.
본격적으로 cin을 통해 입력값을 받기 전에 cin.sync_with_studio(false); cin.tie(NULL)을 써준 이유는, cin의 실행 속도를 더 빠르게 하기 위해서이다.
cin을 이용하여 a에 입력값을 넣을 때에는 >> 기호를 사용한다.
cout으로 변수값 및 문자열을 한꺼번에 여러 개 출력하려면 << 기호를 chaining하여 사용하면 된다.
(setprecision(3) 함수는 유효 숫자를 설정해주는 함수로, printf("%.2f", pi)와 비슷한 의미이다.)
[참고 자료]
https://boycoding.tistory.com/171
'Algorithm > C++' 카테고리의 다른 글
[백준][C++] 5052. 전화번호 목록 (0) 2020.10.02 [STL] pair (0) 2019.11.12 [STL] vector (0) 2019.11.05