[C++] 표준입출력

haaana·2023년 11월 14일
0



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'를 출력하고 있다.

여기서 endliostream 헤더 파일에 포함된 객체이며, 줄바꿈 기능을 수행함과 동시에 cout의 스트림 버퍼에 있는 모든 데이터를 출력한다.
\n 와 같은 기능

// Hello World.cpp - Using printf()
#include <iostream>

using namespace std;

int main() {
    printf("Hello World!\n");

    return 0;
}

C 언어처럼 printf() 함수를 사용하여 'Hello World'를 출력할 수도 있다.

두 코드 모두 실행 결과는 동일하다.




profile
평범한 개발자

0개의 댓글