형식 지정자는 화면에 인쇄할 데이터 유형이나 표준 입력에서 검색할 데이터 유형을 정의하는 데 사용되는 특수 문자 또는 문자 시퀀스입니다. 형식 지정자는 '%' 문자로 시작하고 그 뒤에 다양한 데이터 유형에 대한 문자 순서가 옵니다.
즉, 어떤 유형의 데이터를 저장하고 어떤 데이터를 인쇄할지 알려줍니다. 형식 지정자는 주로 scanf() 및 printf() 함수와 함께 사용됩니다.
예를 들어, 다음을 사용하여 정수를 읽고 인쇄하려는 경우 스캔프() 및 printf() 함수에서는 %i 또는 %d가 사용되지만 둘 다 미묘한 차이가 있습니다. %나 그리고 %디 형식 지정자 .
%d는 부호 있는 십진 정수를 지정하고 %i는 다양한 진수의 정수를 지정합니다.
'%d' 및 '%i'는 printf()와 유사하게 동작합니다.
printf와 함께 사용할 때 %i와 %d 형식 지정자 사이에는 차이가 없습니다.
다음 예를 고려하십시오.
씨
// C program to demonstrate> // the behavior of %i and %d> // with printf statement> #include> int> main()> {> > int> num = 9;> > // print value using %d> > printf> (> 'Value of num using %%d is = %d
'> , num);> > // print value using %i> > printf> (> 'Value of num using %%i is = %i
'> , num);> > return> 0;> }> |
>
>산출
Value of num using %d is = 9 Value of num using %i is = 9>
%d 및 %i 동작은 scanf()와 다릅니다.
%d는 진수를 10으로 가정하고 %i는 진수를 자동으로 감지합니다.
모니터 화면 크기 확인하는 방법
따라서 두 지정자는 입력 함수와 함께 사용될 때 다르게 동작합니다. 따라서 012의 값은 %i에서는 10이 되고 %d에서는 12가 됩니다.
- %d는 정수 값을 부호 있는 십진 정수로 사용합니다. 즉, 양수 값과 함께 음수 값을 사용하지만 값은 십진수여야 하며 그렇지 않으면 쓰레기 값을 인쇄합니다.
( 메모 : 입력이 012와 같은 8진수 형식인 경우 %d는 0을 무시하고 12로 입력을 받습니다.
%i는 10진수, 16진수 또는 8진수 유형의 정수 값으로 정수 값을 사용합니다.
16진수 형식으로 값을 입력하려면 0x 앞에 값을 입력해야 하고, 8진수 형식으로 값을 입력하려면 0 앞에 값을 입력해야 합니다.
다음 예를 고려하십시오.
씨
// C program to demonstrate the difference> // between %i and %d specifier> #include> int> main()> {> > int> a, b, c;> > printf> (> 'Enter value of a in decimal format:'> );> > scanf> (> '%d'> , &a);> > printf> (> 'Enter value of b in octal format: '> );> > scanf> (> '%i'> , &b);> > printf> (> 'Enter value of c in hexadecimal format: '> );> > scanf> (> '%i'> , &c);> > printf> (> 'a = %i, b = %i, c = %i'> , a, b, c);> > return> 0;> }> |
>
>
산출
Enter value of a in decimal format: 12 Enter value of b in octal format: 012 Enter value of c in hexadecimal format: 0x12 a = 12, b = 10, c = 18>
설명
- 12인 a의 십진수 값은 12입니다.
- 12(8진수)인 b의 10진수 값은 10입니다.
- 12(16진수)인 c의 10진수 값은 18입니다.