이 기사에서는 입력 및 출력 작업에 C ioStream을 사용하는 것에 관한 일반적인 질문을 다룹니다.
C 표준 라이브러리는 입력 및 출력 작업을 처리하기위한 iostream
라이브러리를 제공합니다. 이 라이브러리는 printf
및 scanf
와 같은 하위 레벨 C 함수와 비교하여 높은 수준의 객체 지향적 접근 방식을 제공합니다. 핵심 구성 요소는 스트림이며, 이는 장치 (콘솔 또는 파일과 같은)로 흐르는 문자 시퀀스를 나타냅니다.
기본 사용 :
<iostream></iostream>
헤더 파일 : #include <iostream></iostream>
포함해야합니다.개체 : 표준 스트림이 사전 정의되어 있습니다.
std::cin
: 표준 입력 스트림 (일반적으로 키보드).std::cout
: 표준 출력 스트림 (일반적으로 콘솔).std::cerr
: 표준 오류 스트림 (일반적으로 콘솔, 부패하지 않은).std::clog
: 표준 로그 스트림 (일반적으로 콘솔, 버퍼링). )는 출력에 사용되며 추출 연산자 ( <code>>>
)는 입력에 사용됩니다.
예:
<code class="c ">#include <iostream> #include <string> int main() { std::string name; int age; std::cout > name; std::cout > age; std::cout </string></iostream></code>
이 예제는 std::cin
, std::cout
및 문자열 조작을 사용한 기본 입력 및 출력을 보여줍니다. std::endl
Newline 캐릭터를 삽입합니다.
몇 가지 일반적인 함정은 ioStreams로 작업 할 때 예기치 않은 행동이나 오류로 이어질 수 있습니다.
printf
/ scanf
와 std::cout
/ std::cin
혼합하지 마십시오. 더 나은 코드 선명도와 유지 관리 가능성을 위해 일관되게 하나의 메소드를 고수하십시오.good()
메소드 !
연산자 (오류 플래그를 확인하는) :<code class="c ">if (!(std::cin >> age)) { std::cerr ::max(), '\n'); }</code>
std::cout
일반적으로 라인 버퍼가 있습니다. 즉, 출력은 Newline 문자 ( \n
) 또는 std::flush
발생할 때까지 즉시 표시되지 않습니다. std::cerr
은 일반적으로 부패하지 않으므로 오류가 즉시 표시됩니다. std::cout
에 즉시 출력하려면 std::cout .
std::ofstream
또는 std::ifstream
으로 열린 파일을 항상 닫히거나 RAII (Resource Acquisition IS 초기화) 기술 (예 : 스마트 포인터 사용 또는 범위를 벗어나도록) close()
사용하여 자동으로 닫혀 있는지 확인하십시오.
)는 선행 공백을 무시합니다. 공백 문자를 읽어야하는 경우 std::getline()
사용하십시오.c ioStream은 파일 I/O를 처리하는 효율적인 방법을 제공합니다.
파일 출력 :
<code class="c ">#include <fstream> std::ofstream outputFile("my_file.txt"); if (outputFile.is_open()) { outputFile </fstream></code>
파일 입력 :
<code class="c ">#include <fstream> #include <string> std::ifstream inputFile("my_file.txt"); if (inputFile.is_open()) { std::string line; while (std::getline(inputFile, line)) { std::cout </string></fstream></code>
효율성 고려 사항 :
std::ios_base::sync_with_stdio(false);
C 표준 I/O 라이브러리와 동기화를 비활성화하려면 경우에 따라 약간의 성능 이득을 제공 할 수 있습니다. 그러나 예측할 수없는 출력 순서로 이어질 수 있으므로 조심하십시오.std::ios::binary
사용하여 이진 모드에서 파일을 엽니 다.std::cin
, std::cout
및 std::cerr
의 차이점은 무엇입니까? std::cin
, std::cout
및 std::cerr
c iostreams에서 사전 정의 된 표준 스트림으로, 각각은 별개의 목적을 제공합니다.
std::cin
(표준 입력) : 이 스트림은 표준 입력 장치 (일반적으로 키보드)의 입력을 읽는 데 사용됩니다. 추출 연산자 (
)는 std::cin
의 데이터를 읽는 데 사용됩니다.std::cout
(표준 출력) : 이 스트림은 표준 출력 장치, 일반적으로 콘솔에 출력을 작성하는 데 사용됩니다. 삽입 연산자 ( )는 <code>std::cout
에 데이터를 작성하는 데 사용됩니다. 일반적으로 라인 버퍼가 있습니다.
std::cerr
(표준 오류) : 이 스트림은 표준 오류 장치, 일반적으로 콘솔에 오류 메시지를 작성하는 데 사용됩니다. 일반적으로 버퍼링 설정에 관계없이 오류 메시지가 즉시 표시되도록합니다. 이것은 지연없이 중요한 오류 정보를 표시하는 데 중요합니다. std::cerr
종종 오류 및 진단 정보를보고하는 데 사용됩니다. 요컨대 : std::cin
입력을 읽고 std::cout
정상 출력을 씁니다. 그리고 std::cerr
오류 메시지를 씁니다. 버퍼링 동작의 차이는 std::cout
와 std::cerr
의 주요 차이점입니다.
위 내용은 입력/출력 (ioStream)에 C 표준 라이브러리를 어떻게 사용합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!