3. 표준입출력3.1 표준입출력유저가 키보드를 통해 터미널에 입력하는 것을 표준 입력 이라 한다.
그리고 터미널 등에서 데이터를 출력하는 것을 표준 출력 이라 한다.
📌 스트림 StreamC++은 모든 입력과 출력을 byte 의 흐름으로 간주하여 처리한다.
여기서 스트림 (stream)은 byte의 흐름 그 자체를 말한다.
📌 iostreamC 언어의 printf() 나 scanf() 함수를 사용하기 위해 stdio.h 헤더 파일을 include 해준다.
C++에서는 C 언어의 stdio.h 헤더 파일과 비슷한 역할을 하는 iostream 헤더 파일이 있다.
iostream 헤더 파일에 포함된 cin 객체로 입력하고, cout 객체로 출력하는 작업을 수행한다.
또한, C 언어처럼 printf() 함수나 scanf() 함수로도 입출력 작업을 수행할 수 있다.
iostream 헤더 파일을 반드시 포함해야 한다.
→ 키보드 입력 & 화면 출력을 위해 반드시 필요하다.
#include <iostream>
📌 cinC++에서는 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;
}

📌 coutC++에서는 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'를 출력할 수도 있다.
두 코드 모두 실행 결과는 동일하다.
