더북(TheBook)

폭(WW)과 정밀도(.PP)를 이용하면 값의 전반적인 출력 형태를 조절할 수 있다. 예를 들어 범용 부동 소수점 서식인 "%g"의 경우, 정밀도 값으로 유효 숫자의 개수를 지정할 수 있다. "%20.10g"라고 지정하면 출력 필드는 20문자로 구성되고 유효 숫자는 최대 10개까지다. 이런 값이 해석되는 방식은 서식 지정자마다 다르다.

서식 플래그는 출력 형태를 변경할 수 있다. 예를 들어 부호를 앞에 붙일 때는 "%+d"와 같이 지정하고, 16진수로 변환할 때는 0x("%#X")를 지정하고, 8진수로 표현할 때는 0("%#o")를 지정하고, 0 패딩(zero padding) 또는 출력 필드를 오른쪽이 아닌 왼쪽으로 옮기기(left adjustment)(왼쪽 조정) 등이 있다. 자세한 사항은 표 8-10을 참조한다. 명심할 점은 정수 앞에 0을 붙이면 십진수가 아닌 8진수로 해석된다. 따라서 "%-0"과 같이 0 패딩과 왼쪽으로 옮기기를 동시에 지정하지 않는 것이 좋다. 읽는 사람이 헷갈릴 수 있기 때문이다.

출력할 숫자를 나중에 파일에서 읽을 계획이 있다면 부호 있는 타입에 대해서는 "%+d" 형식으로 지정하고, 부호 없는 타입이라면 "%#X"로 지정하고, 부동 소수점이라면 "%a"로 지정하는 것이 무난하다. 이렇게 하면 스트링을 숫자로 변환하는 과정에서 올바른 형식인지 확인하고 파일에 저장된 정보가 손실되지 않도록 할 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.