C++에서 줄 바 꾸 기 endl 과\n 의 차이

2432 단어 C++
다음으로 전송:http://www.sjyhome.com/c++endl-n.html
 
C++에서 디 스 플레이 형식 으로 cout<
""는 리 턴 문자 의 내용 을 나타 내 는 문자열 입 니 다.std::endl 은 스 트림 작업 이 고 출력 의 역할 은 출력'과 유사 하지만 약간 차이 가 있 을 수 있 습 니 다.
4.567917.줄 을 바 꾸 는 전의 문자 만 대표 합 니 다.C 의 중간 형식 출력 줄 이 바 뀌 었 고 C++는 유지 되 었 습 니 다.출력''은 실제 출력 된'\10'입 니 다.출력 흐름 에 정 보 를 추 가 했 습 니 다.모든 문 자 는'\xx'형식 입 니 다.줄 바 꿈 문자 도 마찬가지 입 니 다.다른 모든 문자 로 출력 하면 앞 에 네 개의'*'가 채 워 집 니 다
4.567917.endl 은 대표 가 줄 을 바 꾸 는 것 을 제외 하고 버퍼 를 급히 제거 합 니 다.endl 은 C++에서 사용 하 는 io 스 트림 입 니 다.출력 endl 은 출력 흐름 에 물건 을 추가 하지 않 고 간단하게 흐름 을 새로 고치 고 줄 을 바 꿉 니 다.그러나 이 줄 은 흐름 에 정 보 를 추가 하지 않 기 때문에 그 줄 은'*'로 채 우지 않 습 니 다
std::cout << std::endl;
   
std::cout << '
' << std::flush; ​ std::cout << '
'; std::fflush(stdout);

endl 과 의 차 이 를 이해 하려 면 먼저 출력 흐름 이라는 개념 을 알 아야 한다.
현재 출력 흐름 의 유형 은 매우 많 습 니 다.파일 을 대상 으로 출력 하 는 것 이 있 고 디 스 플레이(Console 간접 출력)를 출력 하 는 것 이 있 습 니 다.다른 추상 적 인 구조 로 출력 되 는 것 도 있다.
cout 의 뜻 은 console-output:콘 솔 출력 입 니 다.그러나 그 메커니즘 은 우리 가 생각 하 는 것 만큼 간단 하지 않 습 니 다.<
아래 코드 로 말씀 드 리 겠 습 니 다.
cout<

cout 는 콘 솔(검 은 화면의 그것)이 아 닌 콘 솔 에 출력 되 는 버퍼 슬롯 을 대표 합 니 다.
버퍼 슬롯 은 어떤 상황 에서 버퍼 의 내용 을 콘 솔 의[화면 인터페이스]에 출력 합 니까?endl 이나 다른 fflush 와 같은 명령 이나 함 수 를 만 났 을 때 버퍼 슬롯 의 내용 은 순서대로 콘 솔 에 출력 되 고 콘 솔 에서 전의 문 자 를 식별 하여 인쇄 합 니 다.
endl 과 의 차 이 는:
4.567917.콘 솔 에서[줄 바 꾸 기]로 번역 되 었 습 니 다.4.567918.
엔 들 은 콘 솔 에서 도[줄 바 꾸 기]로 번역 되 었 다그러나 endl 은 버퍼 슬롯 이 부분 에 있 습 니 다.슬롯 을 청소 하고 버퍼 슬롯 의 내용 을 콘 솔 에 출력 합 니 다.
왜 평소에 거의 다 르 지 않 습 니까?버퍼 슬롯 은 endl 을 사용 하지 않 아 도 다른 줄 의 표현 식 을 만나면 자동 으로 슬롯 을 청소 하기 때문이다.
endl 언제 사용,언제 사용
흐름 조작 부호 operator<
출력 버퍼 가 있 는 흐름(예 를 들 어 cout,clog)에 대해 서 는 버퍼 리 셋 작업 을 수 동 으로 하지 않 으 면 버퍼 가 가득 찬 후에 자동 으로 출력 을 리 셋 합 니 다.그러나 cout 에 있어 서(파일 출력 흐름 등에 비해)버퍼 는 일반적으로 뚜렷하게 나타 나 지 않 습 니 다.그러나 필요 한 경우 엔 엔 델 을 사용 하 는 것 이 좋 은 습관 이다.
버퍼 없 는 흐름(예 를 들 어 표준 오류 출력 흐름 cerr)에 대해 새로 고침 은 필요 하지 않 습 니 다.''를 직접 사용 할 수 있 습 니 다.너무 많은 endl 은 프로그램의 실행 효율 저하 에 영향 을 주 는 요소 중 하나 입 니 다. 
직접 입 출력 은 운영 체제 와 관련 되 기 때문에 커 널 상태/사용자 상 태 를 전환 해 야 할 수 있 습 니 다.일정한 시간 이 필요 합 니 다.잦 은 조작 을 하면 입 출력 의 효율 을 크게 낮 출 수 있 기 때문에 표준 라 이브 러 리 대류 의 입 출력 작업 은 버퍼 를 사용 합 니 다.구체 적 으로 말 하면 메모리 에 크기 가 상대 적 으로 고정된 영역(버퍼)을 저장 하여 임시 입력 이나 출력 을 저장 하 는 것 이다.필요 할 때 만 시스템 장치 에 버퍼 의 내용 을 복사 하고 버퍼 를 비 웁 니 다.이 과정 을 리 셋 이 라 고 합 니 다.

좋은 웹페이지 즐겨찾기