C++에서 Iostream의 정의
이 가이드에서는 C++에서 기본 입력 / 출력 라이브러리를 활용하는 방법에 대해 설명합니다.
<iostream>
헤더를 사용하여 C++에 글로벌 스트림 개체 포함
입력 / 출력 라이브러리는 거의 모든 실제 프로그램에서 사용하는 C++ STL의 핵심 부분입니다. C++ I / O 작업은 일반 데이터 시퀀스로 생각할 수있는 스트림 형태로 추상화됩니다. 스트림 추상화는 여러 상속 된 클래스를 사용하여 구현되며 특정 I / O 작업에 특화된 다른 명명 된 개체로 사용자에게 노출됩니다. 스트림 기반 I / O 라이브러리 전체를 사용하여 콘솔에 텍스트를 인쇄하거나 디스크의 파일에서 데이터를 읽고 쓸 수 있습니다. 스트림 라이브러리는 C++ 프로그램이 파일 시스템 및 장치와 상호 작용하는 기본 수단으로 생각할 수 있습니다.
두 가지 필수 스트림 클래스는istream
및ostream
이며 데이터를 읽고 쓰는 데 사용되는 스트림에 해당합니다. 이러한 클래스는 문자 스트림에 대한 작업을 제공합니다. 사용자 입력을 받거나 오류 메시지를 인쇄하는 것과 같은 작업을 수행하기 위해 프로그램에서 자주 사용하는 네 가지 전역 스트림 개체가 있습니다. 이러한 개체는 다음과 같습니다.
cout
: C의stdout
에 해당하는 표준 출력 스트림을 나타냅니다.cin
: 표준 입력 스트림입니다 (stdin
에 해당).cerr
: 버퍼링되지 않은 스트림으로 구현 된 표준 오류 스트림입니다 (stderr
에 해당).clog
: C에 해당하지 않는 표준 로깅 스트림이며cerr
의 버퍼링 된 버전을 제공합니다.
I / O 스트림 라이브러리의 또 다른 중요한 부분은 서로 다른 개체 간의 작업을 연결하는 데 사용되는 연산자입니다. 스트림 삽입 연산자라고하는<<
연산자는 데이터를 스트림 객체로 푸시합니다. 반면에>>
연산자는 스트림 추출기로 알려져 있습니다. 이러한 연산자는 일반적으로 산술 유형에 대해 시프트 연산을 수행하지만이 경우 오버로드 된 연산자로 구현됩니다.
다음 예에서는 C++ 스트림 기반 I / O 클래스의 기본 사용법을 보여줍니다. cout
객체를 사용하여string
내용을 콘솔에 출력합니다. cout
은 표준 출력 스트림에 해당하므로 삽입 연산자를 사용하여 데이터를 입력하고 일반적으로 콘솔에 인쇄됩니다. endl
객체는 개행 문자를 출력하고 출력 버퍼를 플러시하는 조작 자라고합니다.
스트림 조작기는 다양한 유형으로 제공되며endl
과 같이 입력 / 출력을 수정하는 유형이 있으며 스트림 객체가 입력 / 출력을 다르게 해석하도록하는 것도 있습니다. 후자에는dec
,hex
및oct
와 같은 숫자 기반 조작기가 포함됩니다.
#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
스트림으로 푸시 할 수 있음을 알 수 있습니다. 다음으로cin
및cerr
개체를 사용하여 사용자 입력을 읽고 읽은 데이터를 인쇄합니다.
읽어야하는 유형의 객체는 부동 숫자x
로 미리 선언해야합니다. 삽입 / 추출 연산자의 또 다른 유용한 속성은 작업이 실패하면 0이 아닌 값을 반환한다는 것입니다. 또는 멤버 함수fail
및bad
를 사용하여 지정된 스트림 객체에 특정 오류가 발생했는지 확인할 수 있습니다.
#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!
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