C++ 기본 입력 및 출력
C++ 표준 라이브러리는 풍부한 입력/출력 함수 세트를 제공하며 이에 대해서는 다음 장에서 소개하겠습니다. 이 장에서는 C++ 프로그래밍에서 가장 기본적이고 일반적인 I/O 작업에 대해 설명합니다.
C++의 I/O는 바이트 시퀀스인 스트림에서 발생합니다. 바이트 스트림이 장치(예: 키보드, 디스크 드라이브, 네트워크 연결 등)에서 메모리로 흐르는 경우 이를 입력 작업이라고 합니다. 바이트 스트림이 메모리에서 장치(예: 디스플레이, 프린터, 디스크 드라이브, 네트워크 연결 등)로 흐르는 경우 이를 출력 작업이라고 합니다.
I/O 라이브러리 헤더 파일
다음 헤더 파일은 C++ 프로그래밍에서 매우 중요합니다.
헤더 파일 | 함수 및 설명 |
---|---|
<iostream> | 이 파일은 표준 입력 스트림, 표준 출력 스트림, 버퍼링되지 않은 표준 오류 스트림과 버퍼링된 표준 오류 스트림. <iomanip> |
및 | setprecision)를 통해 표준화된 I/O를 수행하는 데 유용한 서비스를 선언합니다. <fstream> |
표준 출력 스트림(cout)미리 정의된 객체 cout은 ostream 클래스의 인스턴스입니다. cout 객체는 표준 출력 장치(보통 디스플레이 화면)에 "연결"됩니다. cout는 아래와 같이 스트림 삽입 연산자 <<와 함께 사용됩니다. #include <iostream> using namespace std; int main( ) { char str[] = "Hello C++"; cout << "Value of str is : " << str << endl; } 위 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다. Value of str is : Hello C++ C++ 컴파일러는 필요에 따라 변수를 출력합니다. 데이터 유형에 따라 적절한 스트림 삽입 연산자를 선택하여 값을 표시합니다. << 연산자는 내장 유형(정수, 부동, 이중, 문자열 및 포인터)의 데이터 항목을 출력하도록 오버로드됩니다. 스트림 삽입 연산자 <<는 위의 예와 같이 명령문에서 여러 번 사용될 수 있습니다. endl은 줄 끝에 개행 문자를 추가하는 데 사용됩니다. 표준 입력 스트림(cin)미리 정의된 개체 cin은 istream 클래스의 인스턴스입니다. cin 객체는 표준 입력 장치(일반적으로 키보드)에 연결됩니다. cin은 아래와 같이 스트림 추출 연산자 >>와 함께 사용됩니다. #include <iostream> using namespace std; int main( ) { char name[50]; cout << "请输入您的名称: "; cin >> name; cout << "您的名称是: " << name << endl; } 위 코드를 컴파일하고 실행하면 사용자에게 이름을 묻는 메시지가 표시됩니다. 사용자가 값을 입력하고 Enter 키를 누르면 다음과 같은 결과가 나타납니다. 请输入您的名称: cplusplus 您的名称是: cplusplus C++ 컴파일러는 입력 값의 데이터 유형에 따라 적절한 스트림 추출 연산자를 선택하여 값을 추출하고 저장합니다. 특정 변수에 주어진 것에서. 스트림 추출 연산자>>는 하나의 문에서 여러 번 사용할 수 있습니다. 여러 데이터 입력이 필요한 경우 다음 문을 사용할 수 있습니다. cin >> name >> age; 이는 다음 두 문과 동일합니다. cin >> name; cin >> age; 표준 오류 스트림( cerr )미리 정의된 개체 cerr는 ostream 클래스의 인스턴스입니다. cerr 개체는 표준 오류 장치, 일반적으로 디스플레이에 연결되지만 cerr 개체는 버퍼링되지 않으며 cerr에 삽입된 모든 스트림은 즉시 출력됩니다. cerr은 아래와 같이 스트림 삽입 연산자 <<와 함께 사용됩니다. #include <iostream> using namespace std; int main( ) { char str[] = "Unable to read...."; cerr << "Error message : " << str << endl; } 위 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다. Error message : Unable to read.... 표준 로그 스트림(clog)미리 정의된 객체 clog는 ostream 클래스의 인스턴스입니다. clog 개체는 일반적으로 디스플레이 화면이기도 한 표준 오류 장치에 연결되지만 clog 개체는 버퍼링됩니다. 이는 막힘에 삽입된 각 스트림이 먼저 버퍼에 저장되고 버퍼가 가득 차거나 버퍼가 플러시될 때까지 출력되지 않음을 의미합니다. clog는 아래와 같이 스트림 삽입 연산자 <<와 함께 사용됩니다. #include <iostream> using namespace std; int main( ) { char str[] = "Unable to read...."; clog << "Error message : " << str << endl; } 위 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다. Error message : Unable to read.... 이 작은 예제에서는 cout, cerr 및 clog의 차이점을 알 수 없지만 대규모 프로그램을 작성하고 실행할 때 이들 간의 차이점은 매우 분명해집니다. 따라서 좋은 프로그래밍 관행에서는 cerr 스트림을 사용하여 오류 메시지를 표시하고 기타 로그 메시지를 clog 스트림을 사용하여 출력하도록 지시합니다. |