3. 표준입출력
3.1 표준입출력
유저가 키보드를 통해 터미널에 입력하는 것을 표준 입력
이라 한다.
그리고 터미널 등에서 데이터를 출력하는 것을 표준 출력
이라 한다.
📌 스트림 Stream
C++은 모든 입력과 출력을 byte
의 흐름으로 간주하여 처리한다.
여기서 스트림
(stream
)은 byte
의 흐름 그 자체를 말한다.
📌 iostream
C 언어의 printf()
나 scanf()
함수를 사용하기 위해 stdio.h
헤더 파일을 include 해준다.
C++에서는 C 언어의 stdio.h
헤더 파일과 비슷한 역할을 하는 iostream
헤더 파일이 있다.
iostream
헤더 파일에 포함된 cin
객체로 입력하고, cout
객체로 출력하는 작업을 수행한다.
또한, C 언어처럼 printf()
함수나 scanf()
함수로도 입출력 작업을 수행할 수 있다.
iostream
헤더 파일을 반드시 포함해야 한다.
→ 키보드 입력 & 화면 출력을 위해 반드시 필요하다.
#include <iostream>
📌 cin
C++에서는 iostream
헤더 파일에 포함된 cin
객체로 입력한다.
먼저 변수를 선언한 다음 cin
객체를 사용하여 값을 입력받는다.
사용은 std
::
cin
>>
변수명
;
순으로 한다.
std
: 표준 네임스페이스 (namespace
)
→iostream
헤더 파일에 선언되어 있는 std라는 이름공간에 cin
객체가 정의되어 있다.
::
: 범위 지정 연산자
→ 네임스페이스를 지정할 때 사용한다.
cin
: 키보드와 연결된 C++ 표준 입력 스트림 객체
>>
: 스트림 추출 연산자
→ 유저가 입력한 데이터를 입력 스트림에서 오른쪽에 위치한 변수에 저장한다.
아래의 코드를 선언하여 코드 내에 선언된 모든 것에 네임스페이스
std
::
를 생략할 수 있다.using namespace std;
#include <iostream>
#include <string>
using namespace std;
int main() {
int num1;
cin >> num1;
float num2;
cin >> num2;
double num3;
cin >> num3;
char str1;
cin >> str1;
string str2;
cin >> str2;
cout << "출력값: " << num1 << ", " << num2 << ", " << num3 << ", " << str1 << ", " << str2 << endl;
return 0;
}
아래의 코드는 두 개의 숫자를 입력받아 합을 구하여 출력하는 소스 코드이다.
#include <iostream>
using namespace std;
int main() {
int num1, num2, result;
cout << "첫번째 숫자를 입력하세요: ";
cin >> num1;
cout << "두번째 숫자를 입력하세요: ";
cin >> num2;
result = num1 + num2;
cout << "입력한 두 수의 합: " << result << endl;
return 0;
}
📌 cout
C++에서는 iostream
헤더 파일에 포함된 cout
객체로 출력한다.
사용은 std
::
cout
<<
변수명
;
순으로 한다.
<<
기호의 방향에 주의한다.
cin
:>>
cout
:<<
std
: 표준 네임스페이스 (namespace
)
→iostream
헤더 파일에 선언되어 있는 std라는 네임스페이스에 cout
, endl
객체가 정의되어 있다.
::
: 범위 지정 연산자
→ 네임스페이스를 지정할 때 사용한다.
cout
: 스크린 장치와 연결된 C++ 표준 출력 스트림 객체
<<
: 스트림 삽입 연산자
→ 오른쪽에 위치한 변수에 저장된 데이터를 왼쪽에 위치한 출력 스트림 객체에 삽입한다.
→ 여러 개 사용 가능하다.
아래의 코드를 선언하여 코드 내에 선언된 모든 것에 네임스페이스
std
::
를 생략할 수 있다.using namespace std;
아래의 코드는 이전에 해봤던 Hello World.cpp
소스 코드이다.
// Hello World.cpp - Using cout
#include <iostream>
using namespace std;
int main() {
cout << "Hello World!" << endl;
return 0;
}
cout을 사용하여 'Hello World'를 출력하고 있다.
여기서 endl
는 iostream
헤더 파일에 포함된 객체이며, 줄바꿈 기능을 수행함과 동시에 cout
의 스트림 버퍼에 있는 모든 데이터를 출력한다.
→ \n
와 같은 기능
// Hello World.cpp - Using printf()
#include <iostream>
using namespace std;
int main() {
printf("Hello World!\n");
return 0;
}
C 언어처럼 printf()
함수를 사용하여 'Hello World'를 출력할 수도 있다.
두 코드 모두 실행 결과는 동일하다.