일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 3D #Reconstruction #computer #vision #volume #metric #tsdf #kinect #fusion
- hcpc
- 1174
- 16202
- N번째큰수
- 이분탐색 #dp #11053
- 백준 #다익스트라 #dijkstra #9370 #c++
- 호반우 상인
- 22869
- c++ #boj #
- 투포인터 #백준 #boj #20922 #22862
- boj #백준
- C++
- 백준
- 코딩
- 레드아보
- 3343
- graph #최단경로
- backtracking #codetree #디버깅 #삼성코테
- 20117
- 쌤쌤쌤
- 최소 #공배수 #최대 #공약수 #유클리드 #호제법 #lcm #gcd #c++ #boj #3343 #백준 #장미
- BOJ
- graph
- 30870
- 진법변환 #2to10 #10to2 #이진법 #십진법 #변환 #bitset #c++
- LIS #가장긴증가하는부분수열 #
- 줄어드는수
- c++ #입출력 #속도 #ios #sync_with_stdio #cin #cout #tie
- 사이클 없는 그래프
- Today
- Total
hyunjin
출력 포맷 변경 iomanip 본문
1.std:: cout 출력 포맷 변경 방법
iomanip 에서 제공하는 함수 사용해 포맷 변경 가능
2.필요 헤더
#include <iomanip>
3. 사용법
std::cout 에 포맷을 먼저 세팅 후 표현할 정보 입력
1)특정 format 설정 (std::setiosflags)
-한 번 설정한 format은 설정을 제거하지 않는 한 유지
- setioflags에 인자 값은 꼭 std :: ios에 있는 값 사용해야함. 그렇지 않으면 에러
-예제 코드 : 코드업 1012
#include <bits/stdc++.h>
#include <iomanip>
using namespace std;
int main(void){
float number;
cin>>number;
cout<<fixed<<setprecision(6)<<number<<"\n";
return 0;
}
기본적으로 숫자를 출력할때 cout의 정밀도는 6이다. (즉, 자체적으로 6개의 숫자를 출력한다.)
하지만 문제에서 제시된 예시는 7자리 수이므로 출력자릿수 조정이 필요하다. iomanip헤더의 setprecision기능을 사용해야한다.
fixed와 setprecisino을 같이 쓰게되면, 소수점만 n자리수 출력합니다.
fixed가 없다면, 정수와 소수부분을 합쳐서 n자리수로 출력하게 된다.
2)특정 format 해제 (std::resetiosflags)
-예제 코드
// std::setiosflags 를 사용
std::cout << std::resetiosflags (std::ios::showbase | std::ios::uppercase);
std::cout << "unsetformat : " << std::dec << num << std::endl;
아직 잘 모르겠다.
4. sample 코드
#include <bits/stdc++.h>
#include <iomanip>
using namespace std;
int main(void){
int num =10;
float fnum=10.001;
int lhex = 0x1a;
int uhex = 0x1A;
double f = 3.14159;
4.1 format 세팅 방법
std::setiosflags 사용
4.2 특정 format 해제 방법
sed::setiosflags 사용
4.3 현재 cout 상태 저장
4.4 샘플 코드
10칸 확보, 우측 정렬
10칸 확보, 좌측 정렬
빈칸채우기
decimal
decimal을 hexa로 표기
Hex를 대문자로 표기
접두 문자를 표시. hex일 경우 0x
양수를 +로 표기
끝에 0을 표시하여 정확도
정확도를 높이기
4.5 현재 cout 상태 복구
다음 1,2중 하나 선택
#include <bits/stdc++.h>
#include <iomanip>
using namespace std;
int main(void){
int num =10;
float fnum=10.001;
int lhex = 0x1a;
int uhex = 0x1A;
double f = 3.14159;
cout<< "--------1.format 세팅--------"<<"\n";
cout<<setiosflags(std::ios::showbase | std::ios::uppercase);
cout<<"setformat : "<< hex<<num<<"\n";
cout<< "--------2. 특정 format 해제--------"<<"\n";
cout<< resetiosflags(std::ios::showbase | std::ios::uppercase);
cout<<"unsetformat : "<< dec<<num<<"\n";
cout<< "--------3. 현재 cout 상태 저장--------"<<"\n";
std::ios state(NULL);
state.copyfmt(cout);
cout<< "--------4. sample code--------"<<"\n";
cout<<"10칸 확보 우측 정렬 :"<<setw(10)<<right<<"test"<<"\n";
cout<<"10칸 확보 좌측 정렬 :"<<setw(10)<<left<<"test"<<"\n";
cout<<fixed<<setprecision(6)<<num<<"\n";
return 0;
}
참고사이트
http://www.cplusplus.com/reference/iomanip/
https://doitnow-man.tistory.com/234
'개인 공부 > C++' 카테고리의 다른 글
[씹어먹는 C++]< 1- C++> namespace (0) | 2021.03.02 |
---|---|
int , string , char 형 변환 (0) | 2021.02.16 |
isalpha , isdigit , isalnum (0) | 2021.02.16 |
2진수 <-> 10진수 변환 코드, bitset (0) | 2020.09.04 |
ios::sync_with_stdio , cin.tie , cout.tie 사용법과 설명, 속도 비교 (0) | 2020.08.13 |