반응형

출처 :           https://www.yes24.com/Product/Goods/9328793

 

입출력 스트림 (Streams)
- `cin`: 표준 입력 스트림으로, 키보드에서 데이터를 입력받는 데 사용됩니다.
- `cout`: 표준 출력 스트림으로, 콘솔에 데이터를 출력하는 데 사용됩니다.
- `cerr`: 표준 오류 스트림으로, 오류 메시지를 출력하는 데 사용됩니다.
- `clog`: `cerr`와 비슷하지만 오류 메시지가 아닌 로그 메시지를 출력하는 데 사용됩니다.


ostream 클래스 (출력 스트림):
- `operator<<`: 삽입 연산자로, 데이터를 출력 스트림에 쓰는 데 사용됩니다. 예를 들어 `cout << "Hello, World!"`와 같이 사용됩니다.
- `flush`: 출력 버퍼를 비웁니다.
- `put(char)`: 문자를 출력 스트림에 직접 씁니다.
- `write(const char*, streamsize)`: 지정된 크기의 데이터를 출력 스트림에 바이트 단위로 씁니다.

istream 클래스 (입력 스트림):
- `operator>>`: 추출 연산자로, 데이터를 입력 스트림에서 읽어와 변수에 저장하는 데 사용됩니다. 예를 들어 `cin >> num`와 같이 사용됩니다.
- `get(char&)`: 문자를 입력 스트림에서 읽어옵니다.
- `getline(char*, streamsize)`: 한 줄을 읽어옵니다.
- `ignore(streamsize, char)`: 입력 스트림에서 특정 문자를 건너뛰거나 지정된 크기만큼 데이터를 무시합니다.

포맷 입출력:
포맷 입출력은 `iomanip` 헤더를 통해 제어됩니다.

- `setw(int)`: 출력 필드의 폭을 설정합니다.

cout << setw(5) << 42; // 출력: "   42"
  ```

- **`setprecision(int)`**: 소수점 이하 자릿수를 설정합니다.
  ```cpp
  double pi = 3.14159265;
  cout << fixed << setprecision(2) << pi; // 출력: "3.14"


- `setfill(char)`: 채움 문자를 설정합니다.

 cout << setfill('*') << setw(8) << 42; // 출력: "******42"



삽입 연산자 (`<<`)와 추출 연산자 (`>>`) 오버로딩:
C++에서 사용자 정의 데이터 유형에 대한 입출력을 지원하려면 해당 데이터 유형에 대한 삽입 연산자와 추출 연산자를 오버로드해야 합니다. 이를 통해 사용자 지정 객체를 스트림에 쓰고 읽을 수 있습니다.

class Person {
public:
    string name;
    int age;

    // 삽입 연산자 오버로딩
    friend ostream& operator<<(ostream& os, const Person& person) {
        os << "Name: " << person.name << ", Age: " << person.age;
        return os;
    }

    // 추출 연산자 오버로딩
    friend istream& operator>>(istream& is, Person& person) {
        cout << "Enter name: ";
        is >> person.name;
        cout << "Enter age: ";
        is >> person.age;
        return is;
    }
};

int main() {
    Person person;
    cin >> person; // 사용자로부터 입력 받음
    cout << person; // 출력
    return 0;
}

 

위의 예제에서 `Person` 클래스에 대한 삽입 연산자와 추출 연산자가 오버로드되어 사용자 정의 객체를 입출력할 수 있도록 만들어졌습니다.

반응형

+ Recent posts