logo

C++ 기본 입력 및 출력(I/O)

C++ I/O 작업은 스트림 개념을 사용합니다. 일련의 바이트 또는 데이터 흐름을 스트림이라고 합니다. 성능을 가속화합니다.

바이트가 주 메모리에서 프린터, 디스플레이 화면, 네트워크 연결 등과 같은 장치로 전송되는 경우 이를 출력 작업이라고 합니다.

입력 작업은 프린터, 디스플레이 화면 또는 네트워크 연결과 같은 장치에서 주 메모리로 바이트가 흐를 때 발생합니다.

C++에서는 사전 정의된 함수 선언은 헤더 파일을 통해 제공되므로 처음부터 새로운 코드를 작성하지 않고도 특정 작업을 수행할 수 있습니다. C++의 입력/출력 작업을 위한 몇 가지 중요한 헤더 파일에는 입력 및 출력 작업을 효과적으로 수행하기 위한 기능이 포함되어 있습니다. C++ 프로그래밍 언어로 생성된 클래스 및 메서드 모음인 C++ 표준 라이브러리에는 이러한 헤더 파일이 포함되어 있습니다. 입력/출력 작업을 위한 주요 헤더 파일에 대해 논의해 보겠습니다.

헤더 파일 기능 및 설명
이는 다음을 정의하는 데 사용됩니다. cout, cin 및 cerr 표준 출력 스트림, 표준 입력 스트림, 표준 오류 스트림에 각각 해당하는 객체입니다.
다음과 같이 형식화된 I/O를 수행하는 데 유용한 서비스를 선언하는 데 사용됩니다. 정밀도를 설정하고 설정합니다.
사용자 제어 파일 처리를 위한 서비스를 선언하는 데 사용됩니다.

아이오스트림: C++의 입출력 작업을 위한 가장 중요한 헤더 파일 중 하나입니다. 그것은 다음을 의미합니다. '입출력' 개울. 다양한 형태의 입력/출력 스트림을 사용하기 위해 아이오스트림 헤더 파일에는 클래스가 포함되어 있습니다. istream(입력 스트림) 그리고 ostream(출력 스트림) 파생 클래스뿐만 아니라 ifstream, 오브스트림 , 그리고 문자열 스트림 . 이 헤더 파일에서 가장 일반적으로 사용되는 클래스는 다음과 같습니다. cin(표준 입력) 그리고 cout(표준 출력) , 사용자 입력을 읽고 콘솔에 출력을 표시할 수 있습니다. 예를 들어:

 #include using namespace std; int main() { int num; cout <> num; cout << 'You entered: ' << num << endl; return 0; } 

산출

 Enter a number: 42 You entered: 42 

iomanip: 이 헤더 파일은 다음을 의미합니다. '입출력 조작' . 서식을 지정하는 도구를 제공합니다. 입력 그리고 산출 . 이를 통해 다음을 수정할 수 있습니다. 정렬, 너비, 정밀도 및 입력 및 출력의 기타 형식 지정 기능입니다. Setw, setprecision, 고정, 왼쪽, 오른쪽 , 기타 정기적으로 사용되는 기능은 다음과 같습니다. 특정 방식으로 데이터를 표시하는 데 특히 유용합니다.

예:

 #include #include using namespace std; int main() { double pi = 3.14159; cout << fixed << setprecision(2) << 'Value of pi: ' << pi << endl; return 0; } 

산출

안드로이드에서 내 아이폰을 찾아줘
 Value of pi: 3.14 

개울: 파일 입/출력 작업을 위한 헤더 파일을 호출합니다. fstream . 파일을 읽고 쓰기 위한 클래스로 구성됩니다. ifstream(입력 파일 스트림) 그리고 ofstream(출력 파일 스트림) . 시스템은 이러한 클래스를 사용하여 읽기 전용 및 쓰기 전용 파일을 엽니다.

예:

 #include #include using namespace std; int main() { ofstream outputFile('output.txt'); if (outputFile.is_open()) { outputFile << 'Hello, File I/O!'; outputFile.close(); cout << 'File is written successfully.' << endl; } else { cout << 'Failed to open the file.' << endl; } return 0; } 

산출

 The file was written successfully. 

이러한 헤더 파일은 C++ 입력/출력 작업에 가장 중요한 파일 중 하나입니다. 각각은 특정 목적을 가지고 있으며 상호 작용 여부에 관계없이 입력 및 출력과 관련된 작업을 성공적으로 관리하는 데 필요한 도구를 제공합니다. 콘솔, 출력 서식 지정 , 또는 파일 작업.

C++에서는 자주 사용합니다. '네임스페이스 표준 사용;' 헤더 파일 뒤에. 그만큼 네임스페이스 표준; 문은 표준 라이브러리 구성 요소로 작업할 때 코드를 간소화하기 위해 C++에서 자주 사용됩니다. 이 문의 기능과 적용을 더 자세히 살펴보겠습니다.

네임스페이스 유사한 식별자(예: 클래스, 함수 , 그리고 변수 ) 이름 충돌을 방지합니다. C++ 표준 라이브러리는 std 네임스페이스 아래에 해당 부분(예: cin, cout 등)을 제공합니다.

용어 '기준' 로 단축된다 '성병' , 표준 라이브러리의 모든 요소가 그 안에 포함되어 있습니다. 이렇게 하면 코드에 설정된 식별자와의 이름 충돌이 줄어듭니다.

이제 왜 using 네임스페이스 std; 명령문은 다음과 같이 사용됩니다.

네임스페이스 std를 사용하지 않고:

 #include int main() { std::cout << 'Hello, world!' << std::endl; return 0; } With using namespace std: #include using namespace std; int main() { cout << 'Hello, world!' << endl; return 0; } 

보시다시피, 네임스페이스 표준; 문을 사용하면 표준:: 접두사 표준 라이브러리 구성 요소에 액세스할 때. 반복할 필요가 없으므로 코드가 더 짧고 읽기 쉬워집니다. 표준:: 각 표준 라이브러리 식별자 앞에.

I/O 라이브러리 헤더 파일

표준 출력 스트림(cout):

cout 개체는 ostream 클래스의 미리 정의된 개체입니다. 이는 일반적으로 디스플레이 화면인 표준 출력 장치에 연결됩니다. cout은 스트림 삽입 연산자(<<) to show the output on a console< p>

표준 출력 스트림(cout)의 간단한 예를 살펴보겠습니다.

 #include using namespace std; int main( ) { char ary[] = &apos;Welcome to C++ tutorial&apos;; cout &lt;&lt; &apos;Value of ary is: &apos; &lt;&lt; ary &lt;&lt; endl; } 

산출

 Value of ary is: Welcome to C++ tutorial 

표준 입력 스트림(cin)

그만큼 식사 미리 정의된 객체입니다. 개울 수업. 일반적으로 키보드인 표준 입력 장치와 연결됩니다. cin은 스트림 추출 연산자(>>)와 함께 사용되어 콘솔에서 입력을 읽습니다.

표준 입력 스트림(cin)의 간단한 예를 살펴보겠습니다.

 #include using namespace std; int main( ) { int age; cout &lt;&gt; age; cout &lt;&lt; &apos;Your age is: &apos; &lt;&lt; age &lt;&lt; endl; } 

산출

 Enter your age: 22 Your age is: 22 

표준 끝선(endl)

그만큼 미리 정의된 객체입니다. 우리의 적 수업. 새 줄 문자를 삽입하고 스트림을 플러시하는 데 사용됩니다.

표준 끝 줄(endl)의 간단한 예를 살펴보겠습니다.

 #include using namespace std; int main( ) { cout &lt;&lt; &apos;C++ Tutorial&apos;; cout &lt;&lt; &apos; Javatpoint&apos;&lt;<endl; cout << 'end of line'<<endl; } < pre> <p> <strong>Output</strong> </p> <pre> C++ Tutorial Javatpoint End of line </pre> <h3>Un-buffered standard error stream (cerr):</h3> <p> <strong> <em>cerr</em> </strong> stands for <strong> <em>&apos;standard error&apos;</em> .</strong> </p> <p>It is an unbuffered stream, meaning that output sent to <strong> <em>cerr</em> </strong> is immediately displayed on the console without buffering.</p> <p>It is typically used for displaying error messages and diagnostic information, which need to be displayed immediately to avoid delays caused by buffering.</p> <p> <strong>Example: using cerr:</strong> </p> <pre> #include int main() { std::cerr &lt;&lt; &apos;This is an error message.&apos; &lt;&lt; std::endl; return 0; } </pre> <p> <strong>Output</strong> </p> <pre> This is an error message. </pre> <h3>buffered standard error stream (clog):</h3> <p>clog stands for <strong> <em>&apos;standard log&apos;</em> </strong> . It is a buffered stream, similar to cout. It&apos;s often used for writing informational or diagnostic messages that are less time-sensitive than errors. The use of buffering can improve performance when displaying a large number of messages.</p> <p> <strong>Example: using clog</strong> </p> <pre> #include int main() { std::clog &lt;&lt; &apos;This is an informational message.&apos; &lt;&lt; std::endl; return 0; } </pre> <p> <strong>Output</strong> </p> <pre> This is an informational message. </pre> <p>In both examples, the output will appear on the console. However, the main difference between <strong> <em>cerr</em> </strong> and <strong> <em>clog</em> </strong> lies in their buffering behavior. Due to its unbuffered nature, messages given to <strong> <em>cerr</em> </strong> are displayed right away, but messages sent to clog may be buffered for greater speed. However, they will still eventually appear on the console.</p> <h4>Note: It is important to remember that the type of message you wish to display will determine whether you use cerr or clog. Use cerr for essential messages that need immediate attention (like error messages) and use clog for less critical diagnostic or informational messages that can be buffered for better performance.</h4> <hr></endl;>

버퍼링되지 않은 표준 오류 스트림(cerr):

세르 약자 '표준 에러' .

버퍼링되지 않은 스트림입니다. 즉, 출력이 다음으로 전송됩니다. 세르 버퍼링 없이 콘솔에 즉시 표시됩니다.

이는 일반적으로 버퍼링으로 인한 지연을 피하기 위해 즉시 표시되어야 하는 오류 메시지 및 진단 정보를 표시하는 데 사용됩니다.

예: cerr 사용:

 #include int main() { std::cerr &lt;&lt; &apos;This is an error message.&apos; &lt;&lt; std::endl; return 0; } 

산출

 This is an error message. 

버퍼링된 표준 오류 스트림(clog):

막힘은 다음을 의미합니다. '표준 로그' . cout과 유사한 버퍼링된 스트림입니다. 오류보다 시간에 덜 민감한 정보 또는 진단 메시지를 작성하는 데 자주 사용됩니다. 버퍼링을 사용하면 많은 수의 메시지를 표시할 때 성능이 향상될 수 있습니다.

예: 막힘 사용

 #include int main() { std::clog &lt;&lt; &apos;This is an informational message.&apos; &lt;&lt; std::endl; return 0; } 

산출

 This is an informational message. 

두 예 모두 콘솔에 출력이 표시됩니다. 그러나 두 제품의 주요 차이점은 세르 그리고 나막신 버퍼링 동작에 있습니다. 버퍼링되지 않은 특성으로 인해 메시지는 세르 즉시 표시되지만 더 빠른 속도를 위해 clog로 전송된 메시지는 버퍼링될 수 있습니다. 그러나 결국에는 콘솔에 계속 표시됩니다.

참고: 표시하려는 메시지 유형에 따라 cerr 또는 clog를 사용할지 여부가 결정된다는 점을 기억하는 것이 중요합니다. 즉각적인 주의가 필요한 필수 메시지(예: 오류 메시지)에는 cerr을 사용하고 더 나은 성능을 위해 버퍼링할 수 있는 덜 중요한 진단 또는 정보 메시지에는 clog를 사용합니다.