programing

C에 선행 0이 있는 'printf'

bestcode 2022. 8. 31. 22:43
반응형

C에 선행 0이 있는 'printf'

다음과 같은 부동 소수점 번호가 있습니다.4917.24소수점 앞에 항상 5자, 앞에 0, 그리고 소수점 뒤에 3자리가 되도록 인쇄하고 싶습니다.

나는 노력했다.printf("%05.3f", n)사용하고 있는 임베디드 시스템에 탑재되어 있습니다만,*****포맷 지정자가 맞습니까?

형식 지정자가 잘못되었습니다.에서printf()man page on machine):

0 공백 패딩이 아닌 제로 패딩을 사용해야 함을 나타내는 제로 "0 문자입니다.둘 다 사용되는 경우 "-는 "0를 덮어씁니다.

필드 폭: 필드 폭을 지정하는 숫자 문자열(옵션). 출력 문자열이 필드 폭보다 작을 경우 왼쪽(또는 왼쪽 조정 표시기가 있는 경우 오른쪽)에 빈 패드로 필드 폭을 구성합니다(선행 0은 플래그이지만 삽입 0은 필드 폭의 일부입니다).

정밀도:옵션의 마침표 「」.에 이어, e와 f 형식의 경우, 또는 문자열로부터 인쇄되는 최대 문자수를 지정하는 정밀도를 나타내는 임의의 숫자 문자열이 표시됩니다.숫자 문자열이 없는 경우 정밀도는 0으로 취급됩니다.

고객님의 경우 포맷은 다음과 같습니다.%09.3f:

#include <stdio.h>

int main(int argc, char **argv)
{
  printf("%09.3f\n", 4917.24);
  return 0;
}

출력:

$ make testapp
cc     testapp.c   -o testapp
$ ./testapp 
04917.240

이 답변은 임베디드 시스템에 탑재되어 있는 것을 조건으로 합니다.printf()이러한 세부사항을 표준으로 준수하는 구현 - 많은 임베디드 환경에는 이러한 구현이 없습니다.

언급URL : https://stackoverflow.com/questions/5007487/printf-with-leading-zeros-in-c

반응형