C++에서 Iostream의 정의

Jinku Hu 2023년10월12일
C++에서 Iostream의 정의

이 가이드에서는 C++에서 기본 입력 / 출력 라이브러리를 활용하는 방법에 대해 설명합니다.

<iostream>헤더를 사용하여 C++에 글로벌 스트림 개체 포함

입력 / 출력 라이브러리는 거의 모든 실제 프로그램에서 사용하는 C++ STL의 핵심 부분입니다. C++ I / O 작업은 일반 데이터 시퀀스로 생각할 수있는 스트림 형태로 추상화됩니다. 스트림 추상화는 여러 상속 된 클래스를 사용하여 구현되며 특정 I / O 작업에 특화된 다른 명명 된 개체로 사용자에게 노출됩니다. 스트림 기반 I / O 라이브러리 전체를 사용하여 콘솔에 텍스트를 인쇄하거나 디스크의 파일에서 데이터를 읽고 쓸 수 있습니다. 스트림 라이브러리는 C++ 프로그램이 파일 시스템 및 장치와 상호 작용하는 기본 수단으로 생각할 수 있습니다.

두 가지 필수 스트림 클래스는istreamostream이며 데이터를 읽고 쓰는 데 사용되는 스트림에 해당합니다. 이러한 클래스는 문자 스트림에 대한 작업을 제공합니다. 사용자 입력을 받거나 오류 메시지를 인쇄하는 것과 같은 작업을 수행하기 위해 프로그램에서 자주 사용하는 네 가지 전역 스트림 개체가 있습니다. 이러한 개체는 다음과 같습니다.

  • cout: C의stdout에 해당하는 표준 출력 스트림을 나타냅니다.
  • cin: 표준 입력 스트림입니다 (stdin에 해당).
  • cerr: 버퍼링되지 않은 스트림으로 구현 된 표준 오류 스트림입니다 (stderr에 해당).
  • clog: C에 해당하지 않는 표준 로깅 스트림이며cerr의 버퍼링 된 버전을 제공합니다.

I / O 스트림 라이브러리의 또 다른 중요한 부분은 서로 다른 개체 간의 작업을 연결하는 데 사용되는 연산자입니다. 스트림 삽입 연산자라고하는<<연산자는 데이터를 스트림 객체로 푸시합니다. 반면에>>연산자는 스트림 추출기로 알려져 있습니다. 이러한 연산자는 일반적으로 산술 유형에 대해 시프트 연산을 수행하지만이 경우 오버로드 된 연산자로 구현됩니다.

다음 예에서는 C++ 스트림 기반 I / O 클래스의 기본 사용법을 보여줍니다. cout객체를 사용하여string내용을 콘솔에 출력합니다. cout은 표준 출력 스트림에 해당하므로 삽입 연산자를 사용하여 데이터를 입력하고 일반적으로 콘솔에 인쇄됩니다. endl객체는 개행 문자를 출력하고 출력 버퍼를 플러시하는 조작 자라고합니다.

스트림 조작기는 다양한 유형으로 제공되며endl과 같이 입력 / 출력을 수정하는 유형이 있으며 스트림 객체가 입력 / 출력을 다르게 해석하도록하는 것도 있습니다. 후자에는dec,hexoct와 같은 숫자 기반 조작기가 포함됩니다.

#include <iostream>
#include <string>

using std::cerr;
using std::cout;
using std::endl;
using std::string;

int main() {
  string str1("what does iostream mean?");

  cout << str1 << endl;
  cout << str1 << " - " << str1 << endl;

  return EXIT_SUCCESS;
}

출력:

what does iostream mean?
what does iostream mean? - what does iostream mean?

이전 프로그램에서 볼 수 있듯이 스트림 연산자와 객체의 가장 강력한 기능은 순차적으로 여러 번 연결되는 것입니다. 이 경우 리터럴 값을 다른 변수와 결합하여 모두cout스트림으로 푸시 할 수 있음을 알 수 있습니다. 다음으로cincerr개체를 사용하여 사용자 입력을 읽고 읽은 데이터를 인쇄합니다.

읽어야하는 유형의 객체는 부동 숫자x로 미리 선언해야합니다. 삽입 / 추출 연산자의 또 다른 유용한 속성은 작업이 실패하면 0이 아닌 값을 반환한다는 것입니다. 또는 멤버 함수failbad를 사용하여 지정된 스트림 객체에 특정 오류가 발생했는지 확인할 수 있습니다.

#include <iostream>
#include <string>

using std::cerr;
using std::cin;
using std::cout;
using std::endl;
using std::string;

int main() {
  float x;

  cout << "enter float: ";
  if (!(cin >> x)) {
    cerr << "error while reading the floating point value!" << endl;
    return EXIT_FAILURE;
  }
  cout << x;

  return EXIT_SUCCESS;
}

출력:

error while reading the floating point value!
작가: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

관련 문장 - C++ IO