Programing/C++

[C++ 프로그래밍] 데이터 입력과 출력 다루기

유니얼 2024. 6. 7. 03:28
728x90

개요

C++를 배우면서 가장 기본적인 기술 중 하나는 데이터 입력과 출력을 다루는 것입니다. 이 블로그 포스트에서는 데이터를 출력하고, 사용자 입력을 캡처하며, 공백이 포함된 입력을 처리하는 방법에 대해 알아보겠습니다. 간단한 C++ 프로그램을 사용하여 이를 설명하겠습니다.

입출력 스트림 소개

C++는 입력과 출력을 처리하기 위해 몇 가지 표준 입출력 스트림을 제공합니다:

  • std::cout: 표준 출력 스트림으로, 콘솔에 출력을 표시하는 데 사용됩니다.
  • std::cerr: 표준 에러 스트림으로, 에러 메시지를 표시하는 데 사용됩니다.
  • std::clog: 표준 로그 스트림으로, 로그 메시지를 기록하는 데 사용됩니다.

먼저, 이러한 스트림이 어떻게 작동하는지 이해하기 위해 간단한 예제를 살펴보겠습니다.

데이터 출력

#include <iostream>
#include <string>

int main() {
    // 데이터 출력
    std::cout << "Hello C++20" << std::endl;

    int age{21};
    std::cout << "Age: " << age << std::endl;

    std::cerr << "Error message: Something is wrong" << std::endl;
    std::clog << "Log message: Something happened" << std::endl;

    return 0;
}

이 예제에서는:

  • std::cout를 사용하여 인사말과 나이를 출력합니다.
  • std::cerr는 에러 메시지를 출력합니다.
  • std::clog는 로그 메시지를 출력합니다.

사용자 입력 캡처

사용자 입력을 캡처하는 것은 대화형 프로그램에서 필수적입니다. 우리는 std::cin을 사용하여 표준 입력 스트림(보통 키보드)에서 입력을 읽습니다.

#include <iostream>
#include <string>

int main() {
    int age1;
    std::string name;

    std::cout << "Please type your name and age: " << std::endl;
    std::cin >> name >> age1;

    std::cout << "Hello " << name << " you are " << age1 << " years old!" << std::endl;

    return 0;
}

이 코드에서는 사용자에게 이름과 나이를 입력하라고 요청합니다. std::cin이 입력을 읽어오고, 이를 다시 콘솔에 출력합니다.

공백이 포함된 입력 처리

이전 예제의 한계는 공백이 포함된 이름을 처리할 수 없다는 점입니다. 이를 해결하기 위해 std::getline을 사용하여 한 줄의 텍스트를 읽습니다.

#include <iostream>
#include <string>

int main() {
    std::string full_name;
    int age3;

    std::cout << "Please type in your full name and age: " << std::endl;

    std::getline(std::cin, full_name);
    std::cin >> age3;

    std::cout << "Hello " << full_name << " you are " << age3 << " years old!" << std::endl;

    return 0;
}

여기서는 std::getline(std::cin, full_name)을 사용하여 공백을 포함한 전체 이름을 읽습니다. 그런 다음 std::cin을 사용하여 나이를 읽습니다.

전체 예제

위의 모든 요소를 결합하여 전체 프로그램을 작성해 보겠습니다:

#include <iostream>
#include <string>

int main() {
    // 데이터 출력
    std::cout << "Hello C++20" << std::endl;

    int age{21};
    std::cout << "Age: " << age << std::endl;

    std::cerr << "Error message: Something is wrong" << std::endl;
    std::clog << "Log message: Something happened" << std::endl;

    // 사용자 입력 캡처
    int age1;
    std::string name;

    std::cout << "Please type your name and age: " << std::endl;
    std::cin >> name >> age1;

    std::cout << "Hello " << name << " you are " << age1 << " years old!" << std::endl;

    // 공백이 포함된 입력 처리
    std::string full_name;
    int age3;

    std::cout << "Please type in your full name and age: " << std::endl;

    std::cin.ignore(); // 입력 버퍼를 지웁니다.
    std::getline(std::cin, full_name);
    std::cin >> age3;

    std::cout << "Hello " << full_name << " you are " << age3 << " years old!" << std::endl;

    return 0;
}

결론

C++에서 입력과 출력을 다루는 방법을 이해하는 것은 대화형 프로그램을 개발하는 데 중요합니다. 이 포스트에서는 데이터 출력, 사용자 입력 캡처, 공백이 포함된 입력 처리의 기본 사항을 다뤘습니다.

반응형