반응형
포맷 된 IO 함수에서 변환 지정자 % i와 % d의 차이점은 무엇입니까 (* printf / * scanf)
형식 지정자로 사용될 때 %d
와 차이점이 무엇입니까 ?%i
printf
출력에 사용될 때와 동일합니다 (예 : with) printf
.
그러나, 이러한 예와 입력 지시자로서 사용될 때 상이한 scanf
, %d
서명 진수로 정수를 검사하지만, %i
기본적으로 소수이지만 (선행하는 경우도있게 진수 0x
(선행 경우) 진수 0
).
따라서 033
27은 %i
이지만 33은 %d
입니다.
이들은 동일 printf
하지만 다릅니다 scanf
. 를 들어 printf
, 모두 %d
와는 %i
부호 첨부 10 진수의 정수를 지정합니다. 위해 scanf
, %d
그리고 %i
또한 부호있는 정수 있지만 의미 %i
inteprets 앞에 경우 16 진수로 입력 0x
앞에 경우 진수 0
와 다른 진수로 입력을 해석합니다.
의 %i
및 %d
형식 지정자 에는 차이가 없습니다 printf
. 우리는로 이동하여 볼 수 있습니다 초안 C99 표준 섹션 7.19.6.1
fprintf와 기능 도 포함 printf
형식 지정에 관하여 그것이 단락에서 말한다 8 :
변환 지정자와 그 의미는 다음과 같습니다.
다음 글 머리 기호를 포함합니다.
d,i The int argument is converted to signed decimal in the style [−]dddd. The precision specifies the minimum number of digits to appear; if the value being converted can be represented in fewer digits, it is expanded with leading zeros. The default precision is 1. The result of converting a zero value with a precision of zero is no characters.
반면에 scanf
차이가 있기 때문에 자동으로 기준을 감지하는 %d
동안 기준 10을 가정 %i
합니다. 형식 지정자와 관련하여 다루는 7.19.6.2
fscanf 함수 섹션 12로 이동 하여이를 확인할 수 있습니다.scanf
변환 지정자와 그 의미는 다음과 같습니다.
다음을 포함합니다 :
d Matches an optionally signed decimal integer, whose format is the same as expected for the subject sequence of the strtol function with the value 10 for the base argument. The corresponding argument shall be a pointer to signed integer. i Matches an optionally signed integer, whose format is the same as expected for the subject sequence of the strtol function with the value 0 for the base argument. The corresponding argument shall be a pointer to signed integer.
이 printf
둘은 동의어입니다.
반응형
'development' 카테고리의 다른 글
이벤트 핸들러가 jQuery의 요소에 바인딩되어 있는지 테스트 (0) | 2020.05.13 |
---|---|
psql을 사용하여 데이터베이스에 설치된 확장을 어떻게 나열합니까? (0) | 2020.05.13 |
Android-“뒤로”버튼을 재정 의하여 내 활동을 완료하지 못하도록하는 방법은 무엇입니까? (0) | 2020.05.13 |
datetime 데이터 유형의 기본값으로 NOW ()를 설정 하시겠습니까? (0) | 2020.05.13 |
일부 폴더를 제외하고 폴더를 재귀 적으로 복사 (0) | 2020.05.13 |