C의 형식 지정자는 입력 및 출력 작업에서 인쇄하거나 스캔할 데이터 유형을 컴파일러에 알리는 데 사용됩니다. 그들은 항상 다음과 같이 시작합니다. % 기호이며 printf(), scanf, sprintf() 등과 같은 함수의 형식화된 문자열에 사용됩니다.
C 언어는 int의 경우 %d, char의 경우 %c 등과 같은 다양한 데이터 유형과 관련된 다양한 형식 지정자를 제공합니다. 이 기사에서는 일반적으로 사용되는 형식 지정자와 이를 사용하는 방법에 대해 설명합니다.
C의 형식 지정자 목록
아래 표에는 C에서 가장 일반적으로 사용되는 형식 지정자가 포함되어 있습니다.
| 형식 지정자 | 설명 |
|---|---|
| %씨 | 문자 유형의 경우. |
| %디 | 부호 있는 정수 유형의 경우. |
| %e 또는 %E Java의 arraylist 정렬 | 수레의 과학적 표기법입니다. |
| %에프 | 플로트 유형의 경우. |
| %g 또는 %G | 현재 정밀도를 갖는 float 유형의 경우. |
| %나 | 부호 없는 정수 |
| %ld 또는 %li | 긴 |
| %lf | 더블 |
| %Lf | 롱 더블 |
| %lu | 부호 없는 int 또는 unsigned long |
| %lli 또는 %lld | 오래 오래 |
| %llu | 부호 없는 긴 긴 |
| %영형 | 8진수 표현 |
| %피 | 바늘 |
| %에스 | 끈 |
| %안에 | 부호 없는 정수 |
| %x 또는 %X | 16진수 표현 |
| %N | 아무것도 인쇄하지 않습니다 |
| %% | % 문자를 인쇄합니다. |
C의 형식 지정자의 예
1. 문자 형식 지정자 – C의 %c
%c는 형식 지정자입니다. 숯 C언어의 데이터형. C 언어의 형식화된 입력과 형식화된 출력 모두에 사용할 수 있습니다.
통사론:
scanf(' %d ...', ...); printf(' %d ...', ...);> 예:
씨
// C Program to illustrate the %c format specifier.> #include> int> main()> {> >char> c;> >// using %c for character input> >scanf>(>'Enter some character: %c'>, &c);> >// using %c for character output> >printf>(>'The entered character: %c'>, &c);> >return> 0;> }> |
>
>
입력:
Enter some character: A>
산출:
The entered character: A>
2. 정수 형식 지정자(부호 있음) - C의 %d
부호 있는 정수 형식 지정자를 사용할 수 있습니다. %디 scanf() 및 print() 함수 또는 입력 및 출력에 형식화된 문자열을 사용하는 기타 함수에서 정수 데이터 형식.
통사론:
scanf('%d...', ...); printf('%i...', ...);> 예:
씨
// C Program to demonstrate the use of %d and %i> #include> // Driver code> int> main()> {> >int> x;> >// taking integer input> >scanf>(>'Enter the two integers: %d'>, &x);> >// printing integer output> >printf>(>'Printed using %%d: %d
'>, x);> >printf>(>'Printed using %%i: %3i
'>, x);> >return> 0;> }> |
>
>
입력:
Enter the integer: 45>
산출:
Printed using %d: 45 Printed using %i: 45>
3. 부호 없는 정수 형식 지정자 - C의 %u
%u는 부호 없는 정수 데이터 유형에 대한 형식 지정자입니다. %u에 음의 정수 값을 지정하면 정수가 첫 번째 보수로 변환됩니다.
통사론:
printf(' %u ...', ...); scanf(' %u ...', ...);> 예: 다음 C 프로그램은 C에서 %u를 사용하는 방법을 보여줍니다.
씨
// C Program to illustrate the how to use %u> #include> // driver code> int> main()> {> >unsigned>int> var;> >scanf>(>'Enter an integer: %u'>, &var);> >printf>(>'Entered Unsigned Integer: %u'>, var);> >// trying to print negative value using %u> >printf>(>'Printing -10 using %%u: %u
'>, -10);> >return> 0;> }> |
>
>
입력:
Enter an integer: 25>
산출:
Entered unsigned integer: 25 Printing -10 using %u: 4294967286>
4. 부동 소수점 형식 지정자 - C의 %f
그만큼 %에프 입력 및 출력을 위해 형식화된 문자열 내부에서 사용할 수 있는 C 언어의 부동 소수점 형식 지정자입니다. 뜨다 데이터 형식. %f 외에도 다음을 사용할 수 있습니다. %그것은 또는 %그리고 인쇄할 형식 지정자 지수 형식의 부동 소수점 값입니다.
통사론:
printf(' %f ...', ...); scanf(' %e ...', ...); printf(' %E ...', ...);> 예:
씨
// C program to demonstrate the use of %f, %e and %E> #include> // driver code> int> main()> {> >float> a = 12.67;> >printf>(>'Using %%f: %f
'>, a);> >printf>(>'Using %%e: %e
'>, a);> >printf>(>'Using %%E, %E'>, a);> >return> 0;> }> |
>
>산출
Using %f: 12.670000 Using %e: 1.267000e+01 Using %E, 1.267000E+01>
5. 정수에 대한 부호 없는 8진수 – C의 %o
C 프로그램에서 %o 형식 지정자를 사용하여 부호 없는 8진수에 대한 입력을 인쇄하거나 가져올 수 있습니다.
통사론:
printf(' %o ...', ...); scanf(' %o ...', ...);> 예:
씨
#include> int> main()> {> >int> a = 67;> >printf>(>'%o
'>, a);> >return> 0;> }> |
>
>산출
103>
6. 정수에 대한 부호 없는 16진수 – C의 %x
%x 형식 지정자는 16진수 정수의 형식화된 문자열에 사용됩니다. 이 경우 16진수의 알파벳은 소문자로 표시됩니다. 대문자 알파벳 숫자에는 %X를 대신 사용합니다.
통사론:
printf(' %x ...', ...); scanf(' %X ...', ...);> 예:
씨
// C Program to demonstrate the use of %x and %X> #include> int> main()> {> >int> a = 15454;> >printf>(>'%x
'>, a);> >printf>(>'%X'>, a);> >return> 0;> }> |
>
>산출
3c5e 3C5E>
7. 문자열 형식 지정자 – C의 %s
C의 %s는 문자열을 인쇄하거나 문자열을 입력으로 사용하는 데 사용됩니다.
통사론:
printf(' %s ...', ...); scanf(' %s ...', ...);> 예:
씨
// C program to illustrate the use of %s in C> #include> int> main()> {> >char> a[] =>'Hi Geeks'>;> >printf>(>'%s
'>, a);> >return> 0;> }> |
>
>산출
Hi Geeks>
예: %s의 scanf() 작업은 printf() 작업과 약간 다릅니다. 다음 C 프로그램을 통해 이를 이해해보자.
씨
// C Program to illustrate the working of %s with scanf()> #include> int> main()> {> >char> str[50];> >// taking string as input> >scanf>(>'Enter the String: %s'>, str);> >printf>(>'Entered String: %s'>, str);> >return> 0;> }> |
>
>
입력
Enter the string: Hi Geeks>
산출
Hi>
보시다시피 문자열은 공백이 나타날 때까지만 검색됩니다. 우리는 다음을 사용하여 이를 피할 수 있습니다. C의 스캔셋 .
8. 주소 형식 지정자 - C의 %p
C 언어는 주소/포인터를 인쇄하기 위한 형식 지정자를 제공합니다. %p를 사용하여 C에서 주소와 포인터를 인쇄할 수 있습니다.
통사론
printf(' %p ...', ...);> 예:
씨
#include> int> main()> {> >int> a = 10;> >printf>(>'The Memory Address of a: %p
'>,(>void>*)&a);> >return> 0;> }> |
>
>산출
The Memory Address of a: 0x7ffe9645b3fc>
입력 및 출력 포맷
C 언어는 입력과 출력의 형식을 지정할 수 있는 몇 가지 도구를 제공합니다. 일반적으로 % 기호와 형식 지정자 기호 사이에 삽입됩니다. 그 중 일부는 다음과 같습니다.
- 빼기(-) 기호는 왼쪽 정렬을 나타냅니다.
- 다음 숫자 % 문자가 공백으로 채워지는 너비의 크기보다 문자가 작을 경우 인쇄할 최소 필드 너비를 지정하고, 그보다 크면 잘리지 않고 그대로 인쇄됩니다.
- 마침표( . ) 기호는 필드 너비를 정확하게 구분합니다.
정밀도는 정수의 최소 자릿수, 문자열의 최대 문자 수, 부동 값의 소수 부분 뒤의 자릿수를 알려줍니다.
I/O 포맷의 예
씨
// C Program to demonstrate the formatting methods.> #include> int> main()> {> >char> str[] =>'geeksforgeeks'>;> >printf>(>'%20s
'>, str);> >printf>(>'%-20s
'>, str);> >printf>(>'%20.5s
'>, str);> >printf>(>'%-20.5s
'>, str);> >return> 0;> }> |
>
>산출
geeksforgeeks geeksforgeeks geeks geeks>
C 형식 지정자에 대한 FAQ
1. C에는 이진수에 대한 형식 지정자가 있습니까?
아니요, C 언어는 이진수에 대한 형식 지정자를 제공하지 않습니다.
2. 형식화된 문자열은 무엇입니까?
C의 입력 및 출력 함수는 데이터가 화면에 표시되는 방법이나 데이터가 메모리에 검색되는 방법을 결정하는 인수로 문자열을 사용합니다. 이 문자열을 형식화된 문자열이라고 합니다.