IT박스

% d가 정수를 나타내는 이유는 무엇입니까?

itboxs 2020. 10. 22. 07:48
반응형

% d가 정수를 나타내는 이유는 무엇입니까?


이것이 생산적으로 들리지 않는다는 것을 알고 있지만 printf통화에 대한 모든 서식 지정 코드를 기억할 방법을 찾고 있습니다. %s, %p, %f모든 분명하지만, 어디 이해할 수없는 %d에서 온다. 되어 %i이미 다른 무언가에 의해 촬영?


"정수"가 아닌 " 십진수 "(밑수 10)를 나타냅니다 . 16 진수 (16 진수 ) 로 인쇄하고 8 진수 (8 진수 ) %x로 인쇄 하는 사용할 수 있습니다 . 정수는 이러한 염기 중 하나 일 수 있습니다.%o

에서는 "decimal"대신 "integer"를 표시하는 것을 선호하는 경우 의 동의어로 printf()사용할 수 있지만 일반적으로 더 구체적이므로 선호됩니다.%i%d%d

입력시를 scanf()사용하면 %i모두 사용할 수 있습니다 %d. %i이는 임의의 밑 ( 0또는 0x접두사 로 표시되는 8 진수, 16 진수 또는 10 %d진수)의 정수로 구문 분석 하는 것을 의미하고, 10 진수 정수로 구문 분석 하는 것을 의미합니다.

다음은 실행중인 모든 항목의 예입니다.

#include <stdio.h>

int main() {
  int out = 10;
  int in[4];

  printf("%d %i %x %o\n", out, out, out, out);
  sscanf("010 010 010 010", "%d %i %x %o", &in[0], &in[1], &in[2], &in[3]);
  printf("%d %d %d %d\n", in[0], in[1], in[2], in[3]);
  sscanf("0x10 10 010", "%i %i %i", &in[0], &in[1], &in[2]);
  printf("%d %d %d\n", in[0], in[1], in[2]);

  return 0;
}

따라서 %i입력 기준이 접두사에 종속되도록하려면 사용해야 합니다. 입력베이스를 고정 할 필요가있는 경우, 당신은 사용해야합니다 %d, %x또는 %o. 특히, 선행 0이 당신을 8 진 모드로 만든다는 사실 이 당신을 따라 잡을 수 있습니다.


http://en.wikipedia.org/wiki/Printf_format_string 내가 짐작했던 것처럼 십진법이라고 말하는 것 같습니다

d,i

int를 부호있는 십진수로 표시합니다. '% d'및 '% i'는 출력과 동일하지만 입력을 위해 scanf ()와 함께 사용할 때는 다릅니다 (% i를 사용하면 앞에 0x가 오면 16 진수로, 앞에 0이 오면 8 진수로 해석됩니다).

참고 URL : https://stackoverflow.com/questions/13409014/why-does-d-stand-for-integer

반응형