키보드와 화면, 파일 등의 다양한 다른 장치를 동일하게 취급하기 위하여 도입된 추상적인 메커니즘.
istream 클래스와 ostream 클래스로 나뉘며, 표준 라이브러리인 iostream 을 통해 제공된다.
C++에서 입출력을 위해 cin 과 >> , cout 과 << 를 사용해왔다.
C 의 printf 와는 다르게 데이터 형에 구애받지 않고 사용할 수 있어 편했는데, 이제 그 이유를 알게 되었다.
새로 정의한 클래스를 >> 연산자를 오버로드할 수도 있다.
#include <iostream>
...
class Car {
...
friend ostream& operator<<(ostream& out, Car& c);
};
...
ostream& operator<<(ostream& out, Car& c)
{
out << "차량 번호 " << num << " : " << ", 연료량 : " << gas;
return out;
}
...
int main()
{
Car mycar(1234, 20.5);
cout << mycar;
}
출력 결과
차량 번호 : 1234 , 연료량 20.5
<< 연산자를 통해, 공백이 포함된 문자열을 입력하면 공백 이후 문자가 저장되지 않는다. << 연산자에는 공백 문자를 읽는 기능이 없기 때문이다.
#include <iostream>
using namespace std;
int main()
{
char ch;
cout << "영문자를 입력하십시오.\n";
while(cin.get(ch)) // 한 문자씩 읽어들인다.
cout.put(ch); // 한 문자씩 출력한다.
return 0;
}
#include <iostream>
using namespace std;
int main()
{
for(int i=0;i<=10;++i)
{
cout.width(3); // 출력 폭을 3으로 지정
cout << i;
}
return 0;
}
#include<iostream>
using namespace std;
int main()
{
for(int i=0;i<=10;++i)
{
cout.width(3);
cout.fill('-');
cout << 1;
}
return 0;
}
#include <iostream>
using namespace std;
int main()
{
double pi = 3.141592;
int num = 3;
cout.precision(num); //출력할 소수점의 자릿수를 지정
cout << "원주율은 " << pi << "입니다.\n";
return 0;
}
출력 결과
원주율은 3.14입니다.
출력 형식을 사용자가 원하는대로 지정할 수 있게 하는 함수
#include <iostream>
using namespace std;
int main()
{
cout << dec << 10 << '\n'; // 10
cout << oct << 10 << '\n'; // 12
cout << hex << 10 << '\n'; // a
return 0;
}
개행 문자 (endl) : 줄 바꿈 시 사용하는 '\n' 대신 사용하는 endl 도 조정자다.
setw( ) 조정자 : 출력 폭을 지정할 수 있다. (width 함수와 동일한 서식 )
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
for(int i=0;i<=10;++i)
cout << setw(3) << i;
return 0;
}
이전 포스팅에서 언급한 얕은 복사와 깊은 복사, 앞으로 C++ 을 사용하며 생기는 궁금증이나 새로 알게된 기능들을 까먹지 않게 꾸준히 포스팅 해야겠다.