% 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
'IT박스' 카테고리의 다른 글
| Vue-Router를 사용하여 Vue에서 URL 쿼리 매개 변수를 설정하는 방법 (0) | 2020.10.22 |
|---|---|
| keras에서 두 레이어를 연결하는 방법은 무엇입니까? (0) | 2020.10.22 |
| iPhone Simulator에 자체 서명 된 인증서를 추가 하시겠습니까? (0) | 2020.10.21 |
| 다시 시작하지 않고 vim 구성을 적용 할 수 있습니까? (0) | 2020.10.21 |
| SQL Server : 쉼표로 구분 된 값을 가져 오는 GROUP BY 절 (0) | 2020.10.21 |