형식 지정자는 C에서 입력 및 출력 목적으로 사용됩니다. 이 개념을 사용하면 컴파일러는 scanf() 함수를 사용하여 입력을 받고 printf() 함수를 사용하여 인쇄하는 동안 변수에 어떤 유형의 데이터가 있는지 이해할 수 있습니다. 다음은 형식 지정자 목록입니다.
| 형식 지정자 | 유형 |
|---|---|
| %c | 캐릭터 |
| %d | 부호 있는 정수 |
| %e 또는 %E | 수레의 과학적 표기법 |
| %f | 플로트 값 |
| %g 또는 %G | %e 또는 %E와 유사 |
| %hi | 부호 있는 정수(짧음) |
| %hu | 부호 없는 정수(짧음) |
| %i | 부호 없는 정수 |
| %l 또는 %ld 또는 %li | 긴 |
| %lf | 더블 |
| %Lf | 롱 더블 |
| %lu | unsigned int 또는 unsigned long |
| %lli 또는 %lld | 긴 롱 |
| %llu | 부호 없는 long long |
| %o | 8진수 표현 |
| %p | 포인터 |
| %s | 문자열 |
| %u | 부호 없는 정수 |
| %x 또는 %X | 16진수 표현 |
| %n | 아무것도 인쇄하지 않음 |
| %% | % 문자 인쇄 |
다음은 기본 형식 지정자입니다. 형식 지정자를 사용하여 다른 부분을 추가할 수 있습니다. 다음과 같습니다 -
-
빼기 기호(-) 기호는 왼쪽 정렬을 나타냅니다.
-
% 뒤의 숫자는 최소 필드 너비를 지정합니다. 문자열이 너비보다 작으면 공백으로 채워집니다.
-
마침표(.)는 필드 너비와 정밀도를 구분하는 데 사용됩니다.
예시
#include <stdio.h>
main() {
char ch = 'B';
printf("%c\n", ch); //printing character data
//print decimal or integer data with d and i
int x = 45, y = 90;
printf("%d\n", x);
printf("%i\n", y);
float f = 12.67;
printf("%f\n", f); //print float value
printf("%e\n", f); //print in scientific notation
int a = 67;
printf("%o\n", a); //print in octal format
printf("%x\n", a); //print in hex format
char str[] = "Hello World";
printf("%s\n", str);
printf("%20s\n", str); //shift to the right 20 characters including the string
printf("%-20s\n", str); //left align
printf("%20.5s\n", str); //shift to the right 20 characters including the string, and print string up to 5 character
printf("%-20.5s\n", str); //left align and print string up to 5 character
} 출력
B 45 90 12.670000 1.267000e+001 103 43 Hello World Hello World Hello World Hello Hello
같은 방식으로 scanf() 함수에 이러한 형식 지정자를 사용할 수도 있습니다. 따라서 위와 같이 scanf()에서 입력을 받을 수 있습니다.