NTL 라이브러리 (숫자 이론 라이브러리)를 사용하여 출력을 포맷하려고합니다. 객체 중 하나는 GF2X 객체입니다.이 객체는 계수 열로 표현되는 다항식입니다. 빠른 예 :객체와 함께 setw를 사용하는 방법
GF2X a = GF2X(5,1);
a++;
cout<<a;
은 X^5 + 1 질문은 setw 사용이 출력 포맷에 관한 것과 동일하다하는 [1 0 0 0 0 1]
을 수득한다. 다양한 길이의 GF2X 객체를 출력 할 수 있기를 원합니다. 숫자 앞에는 문자열이 추가됩니다. 나는 다음과 같이 내 출력을 싶습니다
1: [x x x x x x x x] string here
15: [x x x] string here
나는 또한 올바른 정착 것] 내가 setw 사용하고 있다면 아마 기대한다 무엇을 정렬 할 수 있습니다. 내가 코드 (편의상 ommitted 변수 이름)를 사용할 때, :
cout << setw(3)<< int <<": "<< setw(35) << GF2X << setw(15) << string << endl;
내가보기 다음과 같습니다 (컴팩트 제거 일부 공백) 즉
1: [x x x x x x x x] string here
15: [x x x] string here
을 출력을 얻을의 setw 기능 <<GF2X
의 전체 출력을 단일 문자로 취급하는 것으로 보이며 출력 문자열의 크기를 실제로 고려하지 않는 것 같습니다. 출력에서 볼 수 있듯이 GF2X 출력의 왼쪽은 정렬되지만 오른쪽은 출력되지 않지만 일반적으로 setw는 출력의 오른쪽을 정렬하는 것처럼 보입니다.
하나의 접근법은 GF2X – nims
@nims의 << 연산자에 과부하가 될 수 있습니다. 그는이를 수행 한 것으로 보입니다. io manipulators는 자신의 직업에 적합하지 않습니다. 필자는 객체를 문자열로 포맷하고 스트림에 전달하고 객체를 생성하는 함수 인 사용자 정의 클래스를 사용하는 것을 선호합니다. 'cout << FormatWidth (35, GF2X);' –
'std :: left'를 전달하려고 했습니까? – jrok