> 백엔드 개발 > C++ > C\의 형식화된 입력/출력 함수에서 `%i`와 `%d`의 주요 차이점은 무엇입니까?

C\의 형식화된 입력/출력 함수에서 `%i`와 `%d`의 주요 차이점은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-12-18 13:45:16
원래의
540명이 탐색했습니다.

What's the Key Difference Between `%i` and `%d` in C's Formatted Input/Output Functions?

변환 지정자의 미묘한 차이 이해: 형식화된 IO 함수의 %i 대 %d

형식화된 입력/출력 영역( IO) printf 및 scanf와 같은 함수, 변환 지정자는 입력 또는 출력 형식을 안내하는 데 중추적인 역할을 합니다. 이러한 지정자 중 %i와 %d는 유사점과 차이점에 대한 의문을 제기하는 경우가 많습니다.

출력: 균일한 존재

with와 같은 출력 작업에 사용되는 경우 printf, %i와 %d는 모두 동일하게 동작합니다. 이들은 일관되게 10진수 형식의 정수를 나타냅니다. 예를 들어 다음 코드 조각은 동일한 출력을 보여줍니다.

int num = 123;
printf("Decimal representation (%%d): %d\n", num);
printf("Decimal representation (%%i): %i\n", num);
로그인 후 복사

Input: Distinctive Behaviors

그러나 scanf 또는 유사한 함수를 사용하여 입력 작업에 배포하는 경우 %i와 %d는 뚜렷한 차이를 보입니다. %d는 정수를 부호 있는 십진수로만 검색합니다. 이와 대조적으로 %i는 10진수 해석을 유지하지만 16진수(접두사가 0x임) 및 8진수(접두사가 0임) 입력도 포함합니다.

이러한 차이를 설명하려면 다음 예를 고려하세요.

int num;
scanf("%%d", &num); // Only accepts decimal input
scanf("%%i", &num); // Accepts decimal, hexadecimal, or octal input
로그인 후 복사

사용자가 033을 입력하면 scanf는 %i를 사용하여 27로 해석합니다(8진수로 처리하므로). 33은 %d(엄격한 소수)입니다.

요약하면...

%i와 %d는 형식화된 IO에서 비슷한 목적을 공유하지만 차이점은 다음과 같습니다. 입력 작업 중 동작. %d는 부호 있는 10진수 입력으로 제한되는 반면, %i는 10진수와 기타 기본 형식(16진수 및 8진수)을 모두 원활하게 처리합니다. 이러한 이해는 프로그램의 특정 요구 사항에 맞게 입력 작업을 조정하는 데 중요합니다.

위 내용은 C\의 형식화된 입력/출력 함수에서 `%i`와 `%d`의 주요 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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