> 백엔드 개발 > C++ > C의 %i 대 %d: 이러한 형식 지정자는 언제 다릅니까?

C의 %i 대 %d: 이러한 형식 지정자는 언제 다릅니까?

Patricia Arquette
풀어 주다: 2024-12-03 13:37:12
원래의
435명이 탐색했습니다.

%i vs. %d in C: When Do These Format Specifiers Differ?

포맷된 I/O 함수에서 형식 지정자 %i와 %d의 차이점(printf / scanf)

printf와 같은 형식화된 I/O 함수 및 scanf 변환 지정자를 활용하여 입력 또는 출력 중에 데이터가 표현되는 방식을 제어합니다. 이러한 지정자 중 %i와 %d는 일반적으로 정수에 사용됩니다.

출력 용도(%i 대 %d)

형식 지정자로 사용되는 경우 출력에서는 %i와 %d 사이에 구별이 없습니다. 둘 다 동일한 결과를 생성합니다. 이는 10진수 형식의 정수 값을 나타냅니다.

입력 지정자

그러나 %i와 %d를 입력 지정자로 사용할 때 차이가 나타납니다(scanf에서). ). 주요 차이점은 다음과 같습니다.

  • %d: 부호 있는 십진 정수를 지정합니다. 입력은 10진수(십진수)일 것으로 예상됩니다.
  • %i: 기본 동작은 %d(부호 있는 십진 정수)와 유사합니다. 그러나 추가 기능이 있습니다. 다음과 같은 다른 진수로 입력할 수 있습니다.

    • 16진수: 앞에 "0x"가 있으면 입력을 16진수로 해석합니다.
    • 8진수: "0"이 앞에 붙으며 입력을 8진수로 해석합니다. number.

실제 예

차이점을 설명하기 위해 입력 문자열 "033"을 고려해보세요.

  • %d 사용: 부호 있는 십진수로 처리합니다. 정수, 결과 값은 33입니다.
  • %i 사용: 입력이 "0"으로 시작하므로 8진수로 인식합니다. 8진수로 된 "033"의 값은 27입니다.

요약하면 %i와 %d는 출력에서는 유사하게 동작하지만 입력에서는 동작이 다릅니다. %i는 16진수 및 8진수 입력을 허용하여 확장된 기능을 제공하는 반면, %d는 부호 있는 10진수 입력으로 엄격히 제한됩니다.

위 내용은 C의 %i 대 %d: 이러한 형식 지정자는 언제 다릅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿