C++도 C언어와 마찬가지로 문자 출력을 정렬하는 방법들이 있다.
#include <iomanip>
setw()
setw()는 출력되는 공간을 설정할 수 있다.
꼭 출력하고자 하는 것의 왼쪽에 위치해야한다.
1
2
|
int value = 12345678;
cout << "(" << setw(20) << value << ")" << endl;
|
cs |
위와 같이 출력.
자동으로 오른쪽 정렬이 된다.
총 20칸이 할당된다.
setprecision()
출력되는 칸을 구체적으로 설정한다.
1
2
3
4
5
6
7
8
9
|
double number1 = 132.364, number2 = 26.91;
double quotient = number1 / number2;
cout << quotient << endl;
cout << setprecision(5) << quotient << endl;
cout << setprecision(4) << quotient << endl;
cout << setprecision(3) << quotient << endl;
cout << setprecision(2) << quotient << endl;
cout << setprecision(1) << quotient << endl;
|
cs |
위와같이 출력되는 칸의 수를 설정한다.
반올림 된다.
fixed
아래와 같은 유리수를 그냥 출력한다면
아래와 같이 scientific notation 표현식으로 출력된다.
1
2
3
4
5
|
float x = 1231412.32;
float y = 3435897.43;
cout << x << endl;
cout << y << endl;
|
cs |
이를 방지하기 위해 fixed를 사용한다.
1
2
3
4
5
6
|
cout << fixed;
float x = 1231412.32;
float y = 3435897.43;
cout << x << endl;
cout << y << endl;
|
cs |
추가로 fixed는 setprecision() 같이쓰면setprecision() 의 기능이 포인트의 개수를 조정하는 것으로 바뀐다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
float x = 1122.121241223;
cout << fixed << setprecision(4);
cout << x << endl;
cout << fixed << setprecision(3);
cout << x << endl;
cout << fixed << setprecision(2);
cout << x << endl;
cout << fixed << setprecision(1);
cout << x << endl;
|
cs |
위와 같이 포인트의 출력 개수가 변경된다.
showpoint
cout은 만약 포인트에 값이 없다면(12.0 과 같이) 자동적으로 포인트를 제거하고 출력한다.
1
2
3
4
5
|
float x = 12;
float y = 97;
cout << x << endl;
cout << y << endl;
|
cs |
하지만 showpoint를 사용한다면 표시를 해준다.
1
2
3
4
5
6
|
cout << showpoint;
float x = 12;
float y = 97;
cout << x << endl;
cout << y << endl;
|
cs |
left ,right
setw()와 left, right를 이용해서 출력을 왼쪽 또는 오른쪽 정렬할 수 있다.
1
2
3
4
5
|
float x = 1212;
float y = 9712;
cout << "(" << left << setw(20) << x << ")" << endl;
cout << "(" << right << setw(20) << x << ")" << endl;
|
cs |
주의점은
항상 출력하고자 하는 것 바로 옆에 써야한다.
응용
아래와 같이 응용해서 사용 할 수 있다.
1
2
3
4
5
6
7
8
9
|
float x = 12121.1;
float y = 9712;
float z = 23134.234434;
cout << fixed << showpoint << setprecision(2);
cout << "(" << right << setw(10) << x << ")" << endl;
cout << "(" << right << setw(10) << y << ")" << endl;
cout << "(" << right << setw(10) << z << ")" << endl;
|
cs |
위와같이
포인트를 2칸만 출력하고 오른쪽 정렬시킬 수 있다.
출처 Starting Out With C++ Early Objects ninTH edition Tony Gaddis • Judy Walters • Godfrey Muganda
'C++ > 기초' 카테고리의 다른 글
파일 입출력 (fstream) (0) | 2017.10.27 |
---|