C + + 출력 흐름 의 형식 제어

문장http://hi.baidu.com/rocketxyf/blog/item/2562473114dbad17eac4af5a.html

  
  
  
  
  1. inline SMANIP(long)     resetiosflags(long _l) { return SMANIP(long)(__resetiosflags, _l); } 
  2. inline SMANIP(int)      setfill(int _m) {return SMANIP(int)(__setfill, _m); } 
  3. inline SMANIP(long)     setiosflags(long _l) {return SMANIP(long)(__setiosflags, _l); } 
  4. inline SMANIP(int)      setprecision(int _p) {return SMANIP(int)(__setprecision, _p); } 
  5. inline SMANIP(int)      setw(int _w) { return SMANIP(int)(__setw, _w); } 

/ / 그들 은 모두 inline 내 연 함수 입 니 다.
(1)setw(int n) 출력 폭 설정    예:

       
       
       
       
  1. cout<<setw(6)<<123<<endl; 

출력 결 과 는 "    123 ", 123 의 앞 에 세 개의 빈 칸 이 있 고 123 의 오른쪽 정렬 이 있 습 니 다.
(2)setfill(char c) 미리 설 정 된 충전 문자     예:

       
       
       
       
  1. cout<<setfill(‘#’)<<123<<endl; 

출력 표시 결 과 는 '\ # \ # 123', 123 오른쪽 정렬, 앞 에 3 개 채 우기 '\ #' 입 니 다. 。
(3)setbase(int n) 정수 출력 진 을 미리 설정 합 니 다.     예:

       
       
       
       
  1. cout<<setbase(8)<<255<<endl; 

출력 표시 결과 377
(4)setprecision(int n) 출력 흐름 을 제어 하여 부동 소수점 의 정 도 를 표시 합 니 다. 정수 n 은 표 시 된 부동 소수점 숫자의 개 수 를 대표 합 니 다.예제 프로그램 은 다음 과 같다.

       
       
       
       
  1. #include <iostream.h> 
  2. #include <iomanip.h> //  
  3. void main() 
  4.     double amount = 22.0/7; 
  5.     cout <<amount <<endl; //(1) 
  6.     cout <<setprecision(0) <<amount <<endl   //(2) 
  7.        <<setprecision(1) <<amount <<endl     //(3) 
  8.        <<setprecision(2) <<amount <<endl     //(4) 
  9.        <<setprecision(3) <<amount <<endl     //(5) 
  10.        <<setprecision(4) <<amount <<endl;    //(6) 
  11.  
  12.     cout <<setiosflags(ios::fixed); 
  13.     cout <<setprecision(8) <<amount <<endl; //(7) 
  14.     cout <<setiosflags(ios::scientific)<<amount<<endl; //(8)    
  15.     cout <<setprecision(6); 

첫 번 째 줄 의 출력 수 치 는 유효 자릿수 를 설정 하지 않 았 기 때문에 흐 르 는 유효 자릿수 기본 설정 값 6: 두 번 째 출력 은 유효 자릿수 0, C + + 의 최소 유효 자릿수 는 1 로 설정 되 어 있 기 때문에 유효 자릿수 로 1 로 설정 합 니 다. 세 번 째 줄 의 출력 은 설 정 된 유효 자릿수 로 출력 합 니 다. 일곱 번 째 줄 출력 은 setiosflags (ios: fixed) 와 함께 사용 합 니 다.그래서 setprecision (8) 은 모든 숫자 개수 가 아 닌 소수점 뒤의 자릿수 를 설정 합 니 다.여덟 번 째 줄 의 출력 은 setiosflags (ios: science) 로 지수 가 표시 하 는 출력 형식 을 나타 낸다.유효한 자릿수 는 지난번 설정 값 8 을 그대로 사용 합 니 다.지수 형식 으로 출력 할 때 setprecision (n) 은 소수 자릿수 를 나타 낸다. (그런데 이 지수 형식의 출력 은 VC6 로 실행 되 지 않 았 습 니 다)
setw (int w) 설명 < < setw (int w) < < < 출력 위치 너비 < < setw (7) < 1000   출력 결 과 는 "1000" 입 니 다.   "(세 개의 빈 칸 에 바짝 붙 어) 예 를 들 어 < setw (3) < 1000 비트 너비 가 원래 의 숫자의 너비 보다 작 으 면 원래 의 형식 에 따라 "1000" 앞 뒤 에 빈 칸 이 없습니다.
setfill () 설명 setfill (int m) 은 setw (int w) 와 함께 사용 하 는 뜻 은 set (int w) 설정 후의 빈 칸 에 지정 한 문 자 를 채 우 는 것 입 니 다. setfill 안의 매개 변 수 는 int m 가 정수 입 니 다. 그래서 만약 에 저희 가 빈 칸 으로 * 번 호 를 채 우려 면 setfill ('*') [문자] 가 아니 라 setfill (*) 을 사용 해 야 합 니 다.
 
C + + 에서 tellp () 함수 와 tellg () 함수 tellp () 함 수 는 '출력 포인터' 의 현재 위치 (파일 첫 번 째 에서 현재 위치 까지 의 바이트 수) 를 가 져 옵 니 다. tellg () 함 수 는 '읽 기 포인터' 의 현재 위치 (파일 첫 번 째 에서 현재 위치 까지 의 바이트 수) 를 가 져 옵 니 다.

좋은 웹페이지 즐겨찾기