IMCAT.DEV
로그인 가입
C++ 입문 기초

C++ 입출력 (I/O)

C++ 입출력 (I/O) — 초급

C++ 입출력 (I/O)

1. 도입 (왜 배워야 하는가)

C++ 프로그래밍에서 입출력(I/O)은 사용자와 프로그램 간의 정보 교환을 가능하게 해주는 중요한 기능입니다. 실무에서는 사용자가 입력한 데이터를 처리하고, 결과를 출력해야 하는 상황이 자주 발생합니다. 예를 들어, 사용자로부터 점수를 입력받아 평균을 계산하고 출력하는 프로그램을 만든다고 가정해 보겠습니다. 입출력 기능이 없다면 프로그램은 사용자와 소통할 수 없으므로 유용한 기능을 구현할 수 없습니다. 결과적으로, 입출력 기능을 모르고 C++를 사용한다면, 프로그램의 활용도가 극히 떨어지게 됩니다.

2. 핵심 개념 설명

C++에서의 입출력은 크게 두 가지로 나눌 수 있습니다: 입력(Input)과 출력(Output).

  • 입력 (Input): 사용자가 프로그램에 데이터를 제공하는 과정입니다. 예를 들어, 사용자로부터 이름이나 숫자를 입력받는 것입니다. 이는 마치 식당에서 손님이 주문을 하는 것과 비슷합니다.
  • 출력 (Output): 프로그램이 사용자에게 결과를 보여주는 과정입니다. 이는 마치 식당에서 요리가 나와 손님에게 제공되는 것과 같습니다.
  • 관련 용어 정리

    용어설명
    cin표준 입력 스트림, 사용자로부터 데이터를 입력받는 데 사용
    cout표준 출력 스트림, 데이터를 화면에 출력하는 데 사용
    endl출력 후 줄 바꿈을 하는 조작자

    3. 기본 코드 예제

    C++에서 입출력을 사용하는 가장 기본적인 방법을 보여주는 코드입니다.

    #include <iostream> // 입출력 라이브러리 포함
    
    int main() {
        int number; // 정수를 저장할 변수 선언
        std::cout << "정수를 입력하세요: "; // 사용자에게 입력 요청
        std::cin >> number; // 사용자가 입력한 값 읽어오기
        std::cout << "입력한 정수는: " << number << std::endl; // 입력받은 정수 출력
        return 0; // 프로그램 종료
    }

    실행 결과:

    정수를 입력하세요: 5
    입력한 정수는: 5
  • #include <iostream>: C++의 입출력 기능을 사용하기 위해 필요한 라이브러리를 포함합니다.
  • int number;: 입력받은 정수를 저장할 변수를 선언합니다.
  • std::cout << "정수를 입력하세요: ";: 사용자에게 입력을 요청하는 메시지를 출력합니다.
  • std::cin >> number;: 사용자가 입력한 값을 number 변수에 저장합니다.
  • std::cout << "입력한 정수는: " << number << std::endl;: 입력받은 정수를 출력합니다.
  • return 0;: 프로그램을 정상적으로 종료합니다.
  • 4. 실전 활용 예제

    예제 1: 쇼핑몰에서 장바구니에 물건 추가

    사용자가 장바구니에 추가할 물건의 가격을 입력받고, 총 금액을 계산하는 프로그램을 작성할 수 있습니다.

    #include <iostream>
    
    int main() {
        double price; // 물건의 가격
        double total = 0; // 총 금액 초기화
        char choice;
    
        do {
            std::cout << "물건의 가격을 입력하세요: ";
            std::cin >> price; // 가격 입력
            total += price; // 총 금액에 추가
    
            std::cout << "계속 추가 하시겠습니까? (y/n): ";
            std::cin >> choice; // 계속할지 여부 확인
        } while (choice  'y' || choice  'Y'); // 'y' 또는 'Y' 입력 시 계속
    
        std::cout << "장바구니의 총 금액은: " << total << "입니다." << std::endl; // 총 금액 출력
        return 0;
    }

    예제 2: 학생의 성적 평균 계산

    여러 학생의 성적을 입력받아 평균을 계산하는 프로그램입니다.

    #include <iostream>
    
    int main() {
        int n; // 학생 수
        std::cout << "학생 수를 입력하세요: ";
        std::cin >> n; // 학생 수 입력
    
        double score, total = 0; // 성적과 총점 초기화
    
        for (int i = 0; i < n; i++) {
            std::cout << (i + 1) << "번째 학생의 성적을 입력하세요: ";
            std::cin >> score; // 성적 입력
            total += score; // 총점에 추가
        }
    
        std::cout << "학생들의 평균 성적은: " << (total / n) << "입니다." << std::endl; // 평균 성적 출력
        return 0;
    }

    5. 흔한 실수와 주의사항

    실수 1: 입력 변수의 타입 불일치

  • 잘못된 코드:
  • int number;
    std::cin >> number; // 사용자가 문자를 입력했을 때
  • 올바른 코드:
  • int number;
    if (!(std::cin >> number)) {
        std::cout << "잘못된 입력입니다." << std::endl;
        std::cin.clear(); // cin 상태 플래그 초기화
        std::cin.ignore(); // 잘못된 입력 무시
    }

    실수 2: 출력 시 endl을 잊기

  • 잘못된 코드:
  • std::cout << "Hello"; // 줄 바꿈 없이 출력
  • 올바른 코드:
  • std::cout << "Hello" << std::endl; // 줄 바꿈 포함

    6. 정리

  • C++의 입출력 기능은 사용자와의 데이터 교환에 필수적입니다.
  • cin, cout, endl은 기본적인 입출력 작업에 사용되는 주요 요소입니다.
  • 실전에서는 장바구니 관리, 성적 계산과 같은 다양한 상황에서 입출력을 활용할 수 있습니다.

다음에 학습하면 좋은 주제는 파일 입출력입니다. 파일을 통해 데이터를 저장하고 불러오는 방법은 실무에서 매우 유용하게 사용됩니다.