C++버퍼(buffer)사용 에 대한 간단 한 설명

2339 단어 C++버퍼
버퍼
버퍼(buffer)는 메모리 공간의 일부분 입 니 다.메모리 에 모든 데이터 흐름 에 메모리 버퍼 를 열 것 입 니 다.
버퍼 는 스 트림 에 있 는 데 이 터 를 저장 하 는 데 사 용 됩 니 다.버퍼 에 있 는 데 이 터 는 스 트림 입 니 다.C+에 서 는 입 출력 스 트림 이 클래스 로 정의 되 고 C+의 I/O 라 이브 러 리 에 있 는 클래스 를 스 트림 클래스(stream class)라 고 합 니 다.cot 와 cin 은 iostream 스 트림 스 트림 스 트림 의 스 트림 대상 입 니 다.
在这里插入图片描述
버퍼 를 왜 도입 합 니까?
우 리 는 왜 버퍼 를 도입 해 야 합 니까?
예 를 들 어 우 리 는 디스크 에서 정 보 를 찾 습 니 다.우 리 는 먼저 읽 은 데 이 터 를 버퍼 에 두 고 컴퓨터 는 버퍼 에서 데 이 터 를 직접 찾 습 니 다.버퍼 의 데 이 터 를 다 찾 은 후에 디스크 에 가서 읽 습 니 다.그러면 디스크 의 읽 기와 쓰기 횟수 를 줄 일 수 있 습 니 다.게다가 컴퓨터 가 버퍼 에 대한 조작 이 디스크 에 대한 조작 보다 훨씬 빠 릅 니 다.따라서 버퍼 를 사용 하면 컴퓨터 의 운행 속 도 를 크게 높 일 수 있다.
예 를 들 어 우 리 는 프린터 로 문 서 를 인쇄 합 니 다.프린터 의 인쇄 속도 가 상대 적 으로 느 리 기 때문에 우 리 는 먼저 문 서 를 프린터 에 해당 하 는 버퍼 에 출력 하고 프린터 는 스스로 점차적으로 인쇄 합 니 다.이때 우리 의 CPU 는 다른 일 을 처리 할 수 있 습 니 다.
이제 기본적으로 알 겠 죠?버퍼 는 입 출력 장치 와 CPU 사이 에서 데 이 터 를 캐 시 하 는 메모리 영역 입 니 다.이 는 저속 입 출력 장치 와 고속 CPU 가 조 화 롭 게 작업 할 수 있 도록 하고 저속 입 출력 장치 가 CPU 를 차지 하지 않도록 하 며 CPU 를 해방 시 켜 효율 적 인 작업 을 할 수 있 도록 한다.
버퍼 종류
버퍼 는 세 가지 유형 으로 나 뉜 다.전체 버퍼,줄 버퍼,버퍼 없 음.
1.전체 버퍼
이 경우 표준 I/O 캐 시 를 채 워 야 실제 I/O 작업 을 할 수 있다.전체 버퍼 의 전형 적 인 대 표 는 디스크 파일 에 대한 읽 기와 쓰기 이다.
2.줄 버퍼
이 경우 입 출력 에서 줄 바 꿈 자 를 만 났 을 때 진정한 I/O 작업 을 수행 합 니 다.이때 우리 가 입력 한 문 자 는 버퍼 에 저장 하고 Enter 키 를 누 르 고 줄 을 바 꿀 때 실제 I/O 작업 을 합 니 다.전형 적 인 대 표 는 키보드 입력 데이터 다.
3.버퍼 없 음
즉,버퍼 링 을 하지 않 고 표준 오류 상황 stderr 는 전형 적 인 대표 로 오류 정 보 를 신속하게 표시 할 수 있 습 니 다.
버퍼 리 셋
다음 경우 버퍼 의 새로 고침 을 유발 합 니 다:
1.버퍼 가 가득 찼 을 때;
2.flush 문 구 를 실행 합 니 다.
3.endl 문 구 를 실행 합 니 다.
4.파일 을 닫 습 니 다.
예시

#include <iostream>
using namespace std;

int main() {
    int n[5];
    for (int i = 0; i < 5; ++i) {
        cin >> n[i];
        cout << n[i] << endl;
    }
    
    return 0;
}
하나의 입력:
1
1
2
2
3
3
4
4
5
5
하 나 를 입력 하면 즉시 출력 하고 매번 키보드 입력 을 기 다 려 야 합 니 다.
일회 성 입력:
1 2 3 4 5
1
2
3
4
5
매번 순환 할 때마다 하나의 정수 만 필요 하지만 입력 버퍼 에 한 번 에 5 개의 정 수 를 넣 었 습 니 다.
 C++버퍼(buffer)사용 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 C+버퍼 내용 은 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기