programing

C에서 0을 선두로 하는 인쇄

bestcode 2022. 8. 29. 22:13
반응형

C에서 0을 선두로 하는 인쇄

리딩 리딩의 0 「」, 「」등입니다.01001를 참조해 주세요.번호는 다음과 같이 저장됩니다.1001

했습니다.case 또는 「」를 참조해 주세요.ifchar의 ""를 0이지만, 는 이 수 있다는 수 없어요, 는만, 이고, 고고고, 고고고고고 고고 고고 고고 고고 고고 고 ' ' ' the ' the ' the ' the ' the the the the the 。printf포맷 구문에서 제외됩니다.

printf("%05d", zipCode);

0및 ""를 .5에 정수값의 폭을 나타냅니다.

1: "1"을 사용하는 : " " ""%02d"(날짜에 대해서는 생략 가능)1 컬럼의 숫자에 대해서만0을 채웁니다.예.,066.

2: § 2:"%03d"는, 을, 10열의 1개의 0 패드 .를 들어「7」.007 패딩으로 17번 패딩하여 17번 .017.

올바른 해결책은 데이터베이스에 ZIP 코드를 STRING으로 저장하는 것입니다. 숫자처럼 보일 수도 있지만 그렇지 않습니다.이건 코드야 각 부분이 의미를 갖는 곳이지

숫자는 산수를 하는 것입니다.우편번호는 그게 아니에요.

선두에 0을 붙여 번호를 출력하는 방법에는, 다음의 2가지가 있습니다.

「 」의 0다음 중 하나:

int zipcode = 123;
printf("%05d\n", zipcode);  // Outputs 00123

정밀도 지정자 사용:

int zipcode = 123;
printf("%.5d\n", zipcode);  // Outputs 00123

이러한 차이는 음수 처리입니다.

printf("%05d\n", -123);  // Outputs -0123 (pad to 5 characters)
printf("%.5d\n", -123);  // Outputs -00123 (pad to 5 digits)

우편번호는 음수일 가능성이 낮기 때문에 상관없습니다.

단, ZIP 코드는 실제로는 문자와 대시를 포함할 수 있으므로 문자열로 저장해야 합니다.문자열에 선두에 0을 추가하는 것은 간단하므로 문제를 훨씬 쉽게 해결할 수 있습니다.

두 " " " 입니다.5은 '어느 정도'로 할 수 .int★★★★

int width = 5;
printf("%0*d\n", width, 123);  // Outputs 00123
printf("%.*d\n", width, 123);  // Outputs 00123

할 더 . 입니다.0에 의해 값 하지 않습니다.0:

printf("|%0d|%0d|\n", 0, 1);   // Outputs |0|1|
printf("|%.0d|%.0d|\n", 0, 1); // Outputs ||1|

최소 필드 폭 앞에 0을 배치합니다.

printf("%05d", zipcode);
sprintf(mystring, "%05d", myInt);

여기서 "05"는 "앞에 0이 있는 5자리 숫자 사용"을 나타냅니다.

*nix 머신에 있는 경우:

man 3 printf

다음과 같은 수동 페이지가 표시됩니다.

0 값은 0으로 패딩해야 합니다.d, i, o, u, x, X, a, A, e, E, f, F, g 및 G 변환의 경우 변환된 값은 공백이 아닌 0으로 왼쪽에 채워집니다.0 및 - 플래그가 모두 표시될 경우 0 플래그는 무시됩니다.숫자 변환(d, i, o, u, x 및 X)으로 정밀도가 지정되면 0 플래그는 무시됩니다.다른 변환의 경우 동작은 정의되지 않습니다.

C에 대한 질문이지만 이 페이지는 도움이 될 수 있습니다.

우편번호는 매우 현지화된 필드이며, 영국, 캐나다 등 많은 국가에서 우편번호에 문자가 포함되어 있습니다.따라서 이 예에서는 string / varchar 필드를 사용하여 언제든지 다른 국가에서 사용자, 고객, 클라이언트 등을 발송하거나 가져올 경우 저장해야 합니다.

단, 일반적인 경우 권장되는 답변을 사용해야 합니다.printf("%05d", number);).

printf에서는 다양한 포맷 옵션을 사용할 수 있습니다.

예:

printf("leading zeros %05d", 123);

ZIP 코드를 숫자가 아닌 문자열로 저장하면 번거로움(장기)을 덜 수 있습니다.

유연성이 향상되었습니다.다음은 고정된 너비와 공간 패딩으로 정렬된 숫자의 행을 인쇄하는 예입니다.

//---- Header
std::string getFmt ( int wid, long val )
{  
  char buf[64];
  sprintf ( buf, "% *ld", wid, val );
  return buf;
}
#define FMT (getFmt(8,x).c_str())

//---- Put to use
printf ( "      COUNT     USED     FREE\n" );
printf ( "A: %s %s %s\n", FMT(C[0]), FMT(U[0]), FMT(F[0]) );
printf ( "B: %s %s %s\n", FMT(C[1]), FMT(U[1]), FMT(F[1]) );
printf ( "C: %s %s %s\n", FMT(C[2]), FMT(U[2]), FMT(F[2]) );

//-------- Output
      COUNT     USED     FREE
A:      354   148523     3283
B: 54138259 12392759   200391
C:    91239     3281    61423

기능과 매크로는 printfs 가 읽기 쉽도록 설계되어 있습니다.

문자 배열에 ZIP 번호를 저장해야 하는 경우zipcode[], 다음을 사용할 수 있습니다.

snprintf(zipcode, 6, "%05.5d", atoi(zipcode));

언급URL : https://stackoverflow.com/questions/153890/printing-leading-0s-in-c

반응형