Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ 기본 입출력 완벽 정리: cout과 cin 사용법

C++ 입출력(I/O)의 기본 개념

C++ 표준 라이브러리는 매우 폭넓은 입출력 기능을 제공하며, 그 세부 내용은 이후 장에서 차근차근 다루게 됩니다. 이번 글에서는 C++ 프로그래밍에 반드시 필요한 가장 기본적이면서도 가장 많이 사용되는 I/O 연산을 간단히 정리해 보겠습니다.

C++의 입출력은 스트림(stream), 즉 일련의 바이트 흐름을 통해 이루어집니다. 키보드, 디스크 드라이브, 네트워크 연결 등 외부 장치에서 메인 메모리 쪽으로 바이트가 흘러 들어오는 것을 입력 연산(input operation)이라고 부르고, 반대로 메인 메모리에서 모니터 화면, 프린터, 디스크 드라이브, 네트워크 연결 등으로 바이트가 흘러 나가는 것을 출력 연산(output operation)이라고 합니다.

표준 출력 스트림(cout)

미리 정의되어 있는 객체 coutostream 클래스의 인스턴스입니다. cout 객체는 표준 출력 장치, 즉 일반적으로 모니터 화면에 "연결되어 있다"고 표현합니다. cout은 아래 예제처럼 두 개의 부등호(<<)로 표기하는 스트림 삽입 연산자(stream insertion operator)와 함께 사용됩니다.

예제 코드

#include <iostream>
using namespace std;

int main() {
char str[] = "Hello C++";
cout << "Value of str is : " << str << endl;
}

실행 결과

Value of str is : Hello C++

C++ 컴파일러는 출력할 변수의 데이터 타입까지 자동으로 판별하여, 해당 값에 맞는 적절한 스트림 삽입 연산자를 선택합니다. 즉 << 연산자는 int, float, double 같은 기본형 데이터뿐 아니라 문자열과 포인터 값도 출력할 수 있도록 오버로딩(overloading)되어 있습니다.

위 예제에서 볼 수 있듯이 삽입 연산자 <<는 하나의 문장 안에서 여러 번 연달아 사용할 수 있으며, 문장 끝에 붙이는 endl은 줄바꿈(new-line) 문자를 추가하는 역할을 합니다.

표준 입력 스트림(cin)

미리 정의된 객체 cinistream 클래스의 인스턴스입니다. cin 객체는 표준 입력 장치, 보통 키보드에 연결되어 있습니다. cin은 아래 예제처럼 두 개의 부등호(>>)로 표기하는 스트림 추출 연산자(stream extraction operator)와 함께 사용됩니다.

예제 코드

#include <iostream>
using namespace std;

int main() {
char name[50];

cout << "Please enter your name: ";
cin >> name;
cout << "Your name is: " << name << endl;
}

실행 결과

Please enter your name: cplusplus
Your name is: cplusplus

여기서도 C++ 컴파일러는 입력된 값의 데이터 타입을 자동으로 판별하고, 그에 맞는 스트림 추출 연산자를 선택해 값을 추출한 뒤 지정된 변수에 저장합니다.

추출 연산자 >> 역시 하나의 문장에서 여러 번 사용할 수 있습니다. 두 개 이상의 값을 한 번에 입력받으려면 다음과 같이 작성하면 됩니다.

cin >> name >> age;

위 문장은 다음 두 문장과 완전히 동일하게 동작합니다.

cin >> name;
cin >> age;