숫자 print시, 자리수, 지수 등등..의 처리 방법.

bizzare의 이미지

*         1.60417470E-06  3.17767439E-04  2.06040998E-04 -3.94353983E-05

위와 같은 숫자가 있습니다.

이 때,
*부터 총 8칸을 차지하고 있고..
1.60417470E-06
3.17767439E-04
와 같이
숫자 포함하여 16칸씩을 차지하고 있어야 합니다.
즉, 음수가 나오면 '빈칸'이 하나가 됩니다.
-3.94353983E-05

그리고 지수는 2개의 숫자로 즉,
1.60417470E-06
-3.94353983E-05

여기서 2가지 난제가 있습니다.

1) 하나는 숫자의 지수 표기 방법..

%1.8e 를 써서 숫자를 찍으면,
1.60417470E-006 과 같이 지수가 006처럼 3개의 숫자로 구성되더군요.

MS의 visual studio에는
_set_output_format(_TWO_DIGIT_EXPONENT);
가 있습니다만, 리눅스용으로 gcc를 쓸 때는 어떻게 해야하는지 모르겠습니다.

2) 무조건 16칸 채우기..
각 숫자가 부호와 빈칸을 포함해서 정확히 16칸을 차지해야하는데,
어떻게 해야할까요? -_-
일단 숫자로 텍스트로 변환한 후, 그 길이에 맞추어 빈칸을 추가해주는 방식은 너무 무식한 것 같고
뭔가 깔끔한 방법이 있을까요?