cin

Jaemyeong Lee·2024년 7월 31일
0

FastCampusC++

목록 보기
9/78

cin 개요

cin은 C++ 표준 라이브러리의 iostream 헤더 파일에 정의된 객체로, 표준 입력(stdin)으로부터 데이터를 읽는 데 사용됩니다. >> 연산자를 사용하여 데이터를 입력받을 수 있으며, 다양한 형식 지정자를 통해 입력 형식을 조정할 수 있습니다.

주요 기능 요약

기능설명
>> 연산자데이터를 입력받습니다.
cin.setf()플래그를 설정하여 입력 형식을 지정합니다.
cin.unsetf()설정된 플래그를 해제합니다.
cin.fail()입력 실패 여부를 확인합니다.
cin.clear()실패 플래그를 초기화합니다.
cin.ignore()입력 버퍼에서 문자를 무시합니다.
freopen()표준 입력을 파일로 리디렉션합니다.

cin 함수 예제 코드

#include <iostream>
#include <limits>

using namespace std;

int main()
{
    {
        // 정수 입력
        int num;
        cin >> num;
        cout << num << endl;
    }

    {
        // 입력이 성공했을 때만 출력
        int num;
        if (cin >> num)
            cout << num << endl;
    }

    {
        // 입력 실패 처리
        int num;
        cin >> num;
        cout << num << endl;

        // 입력이 실패했을 경우 초기화 시켜준다.
        if (cin.fail())
            cin.clear();

        // 개행 문자가 나올 때까지 무시한다.
        cin.ignore(numeric_limits<streamsize>::max(), '\n');

        cin >> num;
        cout << num << endl;
    }

    {
        // bool 입력을 1/0로 받기
        bool b;
        cin >> b;
        cout << b << endl;

        // bool 입력을 true/false로 받기
        cin.setf(ios_base::boolalpha);
        cin >> b;
        cout << b << endl;
    }

    {
        // 16진수로 입력 받기
        int num;
        cin.setf(ios_base::hex, ios_base::basefield);
        cin >> num;
        cout << num << endl;

        cin >> hex >> num;
        cout << num << endl;
    }

    {
        // stdin 을 input.txt 파일로 리디렉션
        freopen("input.txt", "r", stdin);
        int num;
        cin >> num;
        cout << num << endl;
    }
}

주요 개념 설명

  1. 정수 입력:

    int num;
    cin >> num;
    cout << num << endl;
    • >> 연산자를 사용하여 정수형 값을 입력받습니다.
  2. 입력이 성공했을 때만 출력:

    int num;
    if (cin >> num)
        cout << num << endl;
    • 입력이 성공하면 cintrue를 반환합니다.
  3. 입력 실패 처리:

    int num;
    cin >> num;
    cout << num << endl;
    
    if (cin.fail())
        cin.clear();
    
    cin.ignore(numeric_limits<streamsize>::max(), '\n');
    
    cin >> num;
    cout << num << endl;
    • 입력이 실패하면 fail() 함수가 true를 반환하고, clear() 함수로 실패 상태를 초기화합니다.
    • ignore() 함수를 사용하여 입력 버퍼에 남아있는 문자를 무시합니다.
  4. bool 입력:

    bool b;
    cin >> b;
    cout << b << endl;
    
    cin.setf(ios_base::boolalpha);
    cin >> b;
    cout << b << endl;
    • 기본적으로 bool 입력은 1 또는 0으로 받습니다.
    • boolalpha 플래그를 설정하면 true 또는 false로 입력받습니다.
  5. 16진수 입력:

    int num;
    cin.setf(ios_base::hex, ios_base::basefield);
    cin >> num;
    cout << num << endl;
    
    cin >> hex >> num;
    cout << num << endl;
    • setf 함수를 사용하여 16진수 입력을 받을 수 있습니다.
    • hex 조작자를 사용하여 16진수 입력을 받을 수 있습니다.
  6. 표준 입력을 파일로 리디렉션:

    freopen("input.txt", "r", stdin);
    int num;
    cin >> num;
    cout << num << endl;
    • freopen 함수를 사용하여 표준 입력을 파일로 리디렉션할 수 있습니다.

주요 함수 요약 표

함수설명
cin >> variable표준 입력으로부터 데이터를 읽어옵니다.
cin.setf(flag)입력 형식을 설정합니다.
cin.unsetf(flag)설정된 입력 형식을 해제합니다.
cin.fail()입력 실패 여부를 반환합니다.
cin.clear()입력 실패 상태를 초기화합니다.
cin.ignore()입력 버퍼에서 문자를 무시합니다.
freopen(filename, mode, stream)표준 입력/출력을 파일로 리디렉션합니다.
profile
李家네_공부방

0개의 댓글