C++ 기본 입력/출력: Cout, Cin, Cerr 예
스트림이란 무엇입니까? C++?
C++ 사용자에게 입력/출력 작업을 수행하는 데 사용할 수 있는 다양한 라이브러리를 제공합니다. 이러한 작업은 일반적으로 스트림이라고 불리는 바이트 시퀀스의 형태로 수행됩니다.
스트림은 두 가지로 나뉩니다.
스트림 유형
- 입력 스트림: 이는 바이트가 키보드와 같은 장치에서 주 메모리로 흐르는 일종의 스트림입니다.
- 출력 스트림: 이는 바이트가 반대 방향, 즉 주 메모리에서 디스플레이 화면과 같은 장치로 흐르는 스트림 유형입니다.
스트림은 어떻게 작동하나요?
C++ 스트림은 다음과 같이 작동합니다.
- 먼저 스트림이 올바른 유형으로 초기화됩니다.
- 다음으로, 어디에 있는지 명시해야 합니다. I / O get/put 포인터를 사용하여 발생합니다.
- 스트림 내에서 올바른 위치에 도달한 후에는 각각 >> 및 << 연산자를 사용하여 입력 및 출력 작업을 수행할 수 있습니다.
기능 표
stream.h 헤더 파일에서 제공되는 함수는 다음과 같습니다.
클래스 | 기능 |
---|---|
파일버프 | 파일 버퍼를 읽기/쓰기로 설정합니다. 여기에는 close() 및 open() 함수가 있습니다. |
fstreambase | ifstream, fstream, ofstream 클래스의 기본 클래스입니다. 해당 작업은 파일 스트림과 공통적입니다. |
이프스트림 | 이는 입력 작업을 제공하기 위한 입력 파일 스트림 클래스입니다. |
오프스트림 | 이는 출력 작업을 제공하기 위한 출력 파일 스트림 클래스입니다. |
fstream | 입출력 스트림 클래스입니다. 동시 입출력 작업을 지원합니다. |
C++ 입출력용 헤더 파일
C++ 기본적인 입출력 작업을 수행하기 위한 기능이 포함된 세 가지 라이브러리를 제공합니다. 여기에는 다음이 포함됩니다.
- 이오스트림: 표준 입력/출력 스트림의 약어입니다. 이 헤더 파일에는 cin/cout/cerr과 같은 개체에 대한 정의가 포함되어 있습니다.
- 이오마닙: 입출력 조작기(Input/Output Manipulator)의 약어입니다. 라이브러리에는 스트림 조작에 사용할 수 있는 함수가 함께 제공됩니다. 여기에는 setw, setprecision 등과 같은 개체에 대한 정의가 포함되어 있습니다.
- Fstream: 파일 스트림을 설명하기 위한 헤더 파일입니다. 파일에서 입력으로 읽은 데이터나 파일에 기록된 데이터, 즉 출력을 처리합니다.
cin 및 cout 키워드는 다음에서 매우 인기가 있습니다. C++. 각각 입력을 받고 출력을 인쇄하는 데 사용됩니다. 이를 사용하려면 프로그램에 iostream 헤더 파일을 포함해야 합니다. 그 이유는 해당 헤더 파일에 정의되어 있기 때문입니다. iostream 헤더 파일을 포함하지 않으면 오류가 발생합니다. 이는 회사의 실패로 인해 발생합니다. C++ 키워드의 의미를 이해하는 컴파일러.
iostream 헤더 파일에 정의된 주요 개체는 cin, cout, cerr 및 clog입니다. 그것들에 대해 토론해 봅시다.
표준::컷
cout 객체는 iostream 클래스의 인스턴스입니다. 표준 출력 장치(일반적으로 화면)에 출력을 생성하는 데 사용됩니다. 스트림 삽입 연산자(<<)와 함께 사용됩니다.
예시
#include <iostream> using namespace std; int main() { char welcome[] = "Welcome to Guru99"; cout << welcome << endl; return 0; }
출력:
다음은 코드의 스크린샷입니다.
코드 설명 :
- cout 객체가 정의된 iostream 헤더 파일을 포함합니다.
- 클래스를 사용할 때 호출할 필요가 없도록 std 네임스페이스를 포함합니다.
- main() 함수를 호출합니다. 프로그램 코드는 본문 내에 추가되어야 합니다. 여는 중괄호 {는 본문의 시작을 표시합니다.
- Welcome to Guru99 문자열을 보유하기 위해 Welcome이라는 문자 변수를 만듭니다.
- 콘솔에 Welcome 문자열 값을 인쇄합니다. 엔드는 C++ 끝 줄을 의미하는 키워드입니다. 커서를 이동하여 다음 줄에 텍스트 인쇄를 시작합니다.
- 프로그램은 성공적으로 실행되면 값을 반환해야 합니다.
- main() 함수 본문의 끝입니다.
표준::cin
cin 객체는 istream 클래스의 인스턴스입니다. 입력 장치인 키보드에서 입력을 읽습니다. 일반적으로 추출 연산자(>>)와 함께 사용됩니다. 추출 객체는 cin 객체에서 키보드를 통해 입력된 데이터를 추출하는 역할을 합니다.
예시
다음 예제에서는 cin 키워드를 사용하는 방법을 보여줍니다. C++:
#include <iostream> using namespace std; int main() { int number; cout << "Enter a number:"; cin >> number; cout << "\nYou entered: " << number; return 0; }
출력:
다음은 코드의 스크린샷입니다.
코드 설명 :
- iostream 헤더 파일을 우리 프로그램에 포함시킵니다. cin 객체는 이 헤더 파일에 정의되어 있습니다.
- 클래스를 사용하려면 std 네임스페이스를 포함하세요. 해당 클래스를 사용할 때 std를 호출할 필요가 없습니다.
- main() 함수를 호출합니다. 프로그램 코드는 본문 내에 추가되어야 합니다.
- 프로그램 본문의 시작입니다.
- 선언 정수변수 명명된 번호.
- 사용자에게 숫자를 입력하라는 메시지를 화면에 인쇄합니다.
- 사용자가 콘솔에 입력한 값을 키보드로 읽어옵니다.
- 위에서 읽은 값을 다른 텍스트와 함께 콘솔에 인쇄합니다.
- 프로그램이 성공적으로 실행되면 값을 반환해야 합니다.
- 주요 함수 본문의 끝입니다.
표준::cerr
cerr 객체는 오류를 출력하기 위한 표준 오류 스트림을 형성합니다. C++. Cerr은 ostream 클래스의 인스턴스입니다. cerr 객체는 버퍼링되지 않습니다. 즉, 오류 메시지를 즉시 표시해야 할 때 사용됩니다.
버퍼링되지 않으므로 나중에 표시하기 위해 오류 메시지를 저장하지 않습니다. 스트림 삽입 연산자(<<)와 함께 사용됩니다.
예시
#include <iostream> using namespace std; int main() { cerr << "An Error occurred!"; return 0; }
출력:
다음은 코드의 스크린샷입니다.
코드 설명 :
- cerr 객체가 정의된 iostream 헤더 파일을 포함합니다.
- 클래스를 사용할 때 호출할 필요가 없도록 std 네임스페이스를 포함합니다.
- main() 함수를 호출합니다. 프로그램 논리는 해당 본문 내에 추가되어야 합니다. 여는 중괄호는 함수 본문의 시작을 표시합니다.
- cerr 개체를 사용하여 콘솔에 오류를 인쇄합니다.
- 프로그램은 성공적으로 실행되면 값을 반환해야 합니다.
- 주요 함수 본문의 끝입니다.
표준::막힘
clog 객체는 ostream 클래스의 인스턴스입니다. 표준 디스플레이인 모니터에 오류를 표시하는 데 사용됩니다. cerr 객체와 비슷하지만 버퍼링됩니다. 버퍼링되므로 버퍼가 채워지거나 플러시될 때까지 버퍼에 오류 메시지를 저장합니다. 스트림 삽입 연산자(<<)와 함께 사용됩니다.
예시
#include <iostream> using namespace std; int main() { clog << "An Error occurred!"; return 0; }
출력:
다음은 코드의 스크린샷입니다.
코드 설명 :
- clog 객체가 정의된 iostream 헤더 파일을 포함합니다.
- 클래스를 호출하지 않고도 클래스를 사용할 수 있도록 std 네임스페이스를 포함합니다.
- main() 함수를 호출합니다. 프로그램 논리는 해당 본문 내에 추가되어야 합니다. {는 함수 본문의 시작을 표시합니다.
- clog 객체를 사용하여 표준 출력인 모니터에 오류를 인쇄합니다.
- 프로그램은 성공적으로 완료되면 값을 반환해야 합니다.
- main() 함수 본문의 끝입니다.
IO 스트림을 사용한 오류 처리
스트림이 유효한지 여부를 확인하려면 이를 부울로 사용할 수 있습니다.
다음은 그 예입니다.
ifstream file( "myfile.txt" ); if ( ! file ) { cout << "File NOT opened!" << endl; }
스트림 상태에 대한 자세한 내용을 보려면 다음 함수를 사용하세요.
- good()- 모든 것이 정상이면 true를 반환합니다.
- bad() - 치명적인 오류가 발생하면 true를 반환합니다.
- fail()- 스트림 작업이 실패하면 true를 반환합니다.
- eof()- 파일 끝에 도달하면 true를 반환합니다.
특정 읽기/쓰기 작업이 실패했는지 알아보려면 읽기 결과를 테스트하세요.
예를 들어, 사용자가 유효한 정수를 입력했는지 확인하려면 다음을 수행하십시오.
int p; if ( cin >> p ) { cout << "Enter valid number" << endl; }
제품 개요
- 입력 및 출력 작업 C++ 바이트 시퀀스를 통해 수행됩니다. 바이트를 스트림이라고 합니다.
- 입력 스트림에서 바이트는 키보드와 같은 입력 장치에서 주 메모리로 흐릅니다.
- 출력 스트림에서는 바이트가 주 메모리에서 모니터와 같은 출력 장치로 전달됩니다.
- cin 객체는 istream 클래스의 인스턴스입니다. 키보드와 같은 입력 장치에서 입력을 읽습니다.
- cout 객체는 ostream 클래스의 인스턴스입니다. 모니터와 같은 출력 장치에 출력을 생성합니다.
- cerr 객체는 ostream 클래스의 인스턴스입니다. 모니터에 오류 개체를 표시합니다.
- clog 객체는 ostream 클래스의 인스턴스입니다. 출력 장치에 오류 메시지를 표시합니다.
- clog 객체는 오류 메시지를 버퍼링하는 반면, cerr 객체는 그렇지 않습니다.