logo

C의 형식 지정자

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 언어는 입력과 출력의 형식을 지정할 수 있는 몇 가지 도구를 제공합니다. 일반적으로 % 기호와 형식 지정자 기호 사이에 삽입됩니다. 그 중 일부는 다음과 같습니다.

  1. 빼기(-) 기호는 왼쪽 정렬을 나타냅니다.
  2. 다음 숫자 % 문자가 공백으로 채워지는 너비의 크기보다 문자가 작을 경우 인쇄할 최소 필드 너비를 지정하고, 그보다 크면 잘리지 않고 그대로 인쇄됩니다.
  3. 마침표( . ) 기호는 필드 너비를 정확하게 구분합니다.

정밀도는 정수의 최소 자릿수, 문자열의 최대 문자 수, 부동 값의 소수 부분 뒤의 자릿수를 알려줍니다.

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의 입력 및 출력 함수는 데이터가 화면에 표시되는 방법이나 데이터가 메모리에 검색되는 방법을 결정하는 인수로 문자열을 사용합니다. 이 문자열을 형식화된 문자열이라고 합니다.