C++ 기본 입력/출력: Cout, Cin, Cerr 예

스트림이란 무엇입니까? C++?

C++ 사용자에게 입력/출력 작업을 수행하는 데 사용할 수 있는 다양한 라이브러리를 제공합니다. 이러한 작업은 일반적으로 스트림이라고 불리는 바이트 시퀀스의 형태로 수행됩니다.

스트림은 두 가지로 나뉩니다.

스트림 유형

  • 입력 스트림: 이는 바이트가 키보드와 같은 장치에서 주 메모리로 흐르는 일종의 스트림입니다.
  • 출력 스트림: 이는 바이트가 반대 방향, 즉 주 메모리에서 디스플레이 화면과 같은 장치로 흐르는 스트림 유형입니다.

스트림은 어떻게 작동하나요?

C++ 스트림은 다음과 같이 작동합니다.

  1. 먼저 스트림이 올바른 유형으로 초기화됩니다.
  2. 다음으로, 어디에 있는지 명시해야 합니다. I / O get/put 포인터를 사용하여 발생합니다.
  3. 스트림 내에서 올바른 위치에 도달한 후에는 각각 >> 및 << 연산자를 사용하여 입력 및 출력 작업을 수행할 수 있습니다.

기능 표

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;
}

출력:

표준::컷

다음은 코드의 스크린샷입니다.

표준::컷

코드 설명 :

  1. cout 객체가 정의된 iostream 헤더 파일을 포함합니다.
  2. 클래스를 사용할 때 호출할 필요가 없도록 std 네임스페이스를 포함합니다.
  3. main() 함수를 호출합니다. 프로그램 코드는 본문 내에 추가되어야 합니다. 여는 중괄호 {는 본문의 시작을 표시합니다.
  4. Welcome to Guru99 문자열을 보유하기 위해 Welcome이라는 문자 변수를 만듭니다.
  5. 콘솔에 Welcome 문자열 값을 인쇄합니다. 엔드는 C++ 끝 줄을 의미하는 키워드입니다. 커서를 이동하여 다음 줄에 텍스트 인쇄를 시작합니다.
  6. 프로그램은 성공적으로 실행되면 값을 반환해야 합니다.
  7. 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;
}

출력:

표준::cin

다음은 코드의 스크린샷입니다.

표준::cin

코드 설명 :

  1. iostream 헤더 파일을 우리 프로그램에 포함시킵니다. cin 객체는 이 헤더 파일에 정의되어 있습니다.
  2. 클래스를 사용하려면 std 네임스페이스를 포함하세요. 해당 클래스를 사용할 때 std를 호출할 필요가 없습니다.
  3. main() 함수를 호출합니다. 프로그램 코드는 본문 내에 추가되어야 합니다.
  4. 프로그램 본문의 시작입니다.
  5. 선언 정수변수 명명된 번호.
  6. 사용자에게 숫자를 입력하라는 메시지를 화면에 인쇄합니다.
  7. 사용자가 콘솔에 입력한 값을 키보드로 읽어옵니다.
  8. 위에서 읽은 값을 다른 텍스트와 함께 콘솔에 인쇄합니다.
  9. 프로그램이 성공적으로 실행되면 값을 반환해야 합니다.
  10. 주요 함수 본문의 끝입니다.

표준::cerr

cerr 객체는 오류를 출력하기 위한 표준 오류 스트림을 형성합니다. C++. Cerr은 ostream 클래스의 인스턴스입니다. cerr 객체는 버퍼링되지 않습니다. 즉, 오류 메시지를 즉시 표시해야 할 때 사용됩니다.

버퍼링되지 않으므로 나중에 표시하기 위해 오류 메시지를 저장하지 않습니다. 스트림 삽입 연산자(<<)와 함께 사용됩니다.

예시

#include <iostream>
using namespace std;
int main() {

	cerr << "An Error occurred!";

	return 0;
}

출력:

표준::cerr

다음은 코드의 스크린샷입니다.

표준::cerr

코드 설명 :

  1. cerr 객체가 정의된 iostream 헤더 파일을 포함합니다.
  2. 클래스를 사용할 때 호출할 필요가 없도록 std 네임스페이스를 포함합니다.
  3. main() 함수를 호출합니다. 프로그램 논리는 해당 본문 내에 추가되어야 합니다. 여는 중괄호는 함수 본문의 시작을 표시합니다.
  4. cerr 개체를 사용하여 콘솔에 오류를 인쇄합니다.
  5. 프로그램은 성공적으로 실행되면 값을 반환해야 합니다.
  6. 주요 함수 본문의 끝입니다.

표준::막힘

clog 객체는 ostream 클래스의 인스턴스입니다. 표준 디스플레이인 모니터에 오류를 표시하는 데 사용됩니다. cerr 객체와 비슷하지만 버퍼링됩니다. 버퍼링되므로 버퍼가 채워지거나 플러시될 때까지 버퍼에 오류 메시지를 저장합니다. 스트림 삽입 연산자(<<)와 함께 사용됩니다.

예시

#include <iostream>
using namespace std;
int main() {
	clog << "An Error occurred!";
	return 0;
}

출력:

표준::막힘

다음은 코드의 스크린샷입니다.

표준::막힘

코드 설명 :

  1. clog 객체가 정의된 iostream 헤더 파일을 포함합니다.
  2. 클래스를 호출하지 않고도 클래스를 사용할 수 있도록 std 네임스페이스를 포함합니다.
  3. main() 함수를 호출합니다. 프로그램 논리는 해당 본문 내에 추가되어야 합니다. {는 함수 본문의 시작을 표시합니다.
  4. clog 객체를 사용하여 표준 출력인 모니터에 오류를 인쇄합니다.
  5. 프로그램은 성공적으로 완료되면 값을 반환해야 합니다.
  6. 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 객체는 그렇지 않습니다.