C言語中的 포맷 지시자
안녕하세요, 미래의 프로그래머 여러분! 오늘은 C言語에서의 포맷 지시자에 대해 탐험해보겠습니다. 아직 코드를 한 줄도 작성해보지 않았다고 해도 걱정하지 마세요 - 여러분의 친절한 가이드로서 저는 이 흥미로운 여행을 동반하겠습니다. 이 튜토리얼을 끝내면 여러분은 포맷 지시자를 전문가처럼 사용할 수 있을 것입니다!
C言語에서 왜 포맷 지시자를 사용하나요?
친구에게 가장 좋아하는 숫자에 대해 이야기하려고 할 때 생각해보세요. "내 행운의 숫자는 7이고, 나는 3.14라는 숫자를 좋아해"라고 말할 수 있습니다. C 프로그래밍에서는 컴퓨터에 우리가 다루고 있는 정보가 무엇인지 알려주는 방법이 필요합니다. 이때 포맷 지시자가 역할을 합니다!
포맷 지시자는 우리의 프로그램이 어떤 종류의 데이터를 다루고 있는지 이해하는 데 도움이 되는 작은 번역자입니다. 특히, 값을 출력하거나 사용자로부터 입력을 받을 때 매우 유용합니다.
printf() 함수에서의 포맷 지시자
출력을 표시하는 데 사용하는 printf()
함수로 시작해보겠습니다. 간단한 예제를 들어보겠습니다:
#include <stdio.h>
int main() {
int age = 25;
printf("I am %d years old.\n", age);
return 0;
}
이 코드에서 %d
는 포맷 지시자입니다. printf()
에게 우리가 정수(전체 숫자)를 다루고 있다는 것을 알려줍니다. 이 프로그램을 실행하면 다음과 같은 출력이 나옵니다:
I am 25 years old.
멋지지 않나요? %d
는 age
의 값으로 대체됩니다. 마법 같지만, 실제로는 C가 그런 것을 하고 있습니다!
scanf() 함수에서의 포맷 지시자
이제 사용자로부터 입력을 받는 scanf()
에 대해 살펴보겠습니다. 예제를 들어보겠습니다:
#include <stdio.h>
int main() {
int favorite_number;
printf("What's your favorite number? ");
scanf("%d", &favorite_number);
printf("Wow, %d is a great number!\n", favorite_number);
return 0;
}
여기서도 %d
를 사용하지만, 이번에는 scanf()
에게 사용자로부터 정수 입력을 기대한다는 것을 알려줍니다. favorite_number
앞의 &
는 중요합니다 - C에게 입력을 저장할 위치를 알려줍니다. 지금은 너무 걱정하지 말고, 나중에 더 자세히 다룰 것입니다.
포맷 지시자의 종류
C에서는 특정类型的 데이터를 위해 설계된 다양한 종류의 포맷 지시자가 있습니다. 일부 가장 일반적인 것들을 살펴보겠습니다:
정수 포맷 지시자
지시자 | 설명 | 예제 |
---|---|---|
%d | 부호 있는 십진 정수 | 42, -17 |
%u | 부호 없는 십진 정수 | 42 |
%o | 부호 없는 8진수 | 52 |
%x 또는 %X | 부호 없는 16진수 정수 | 2A 또는 2a |
이제 이들을 동작시켜보겠습니다:
#include <stdio.h>
int main() {
int num = 42;
printf("Decimal: %d\n", num);
printf("Unsigned: %u\n", num);
printf("Octal: %o\n", num);
printf("Hexadecimal: %x\n", num);
return 0;
}
이 코드는 다음과 같은 출력을 낼 것입니다:
Decimal: 42
Unsigned: 42
Octal: 52
Hexadecimal: 2a
실수 포맷
지시자 | 설명 | 예제 |
---|---|---|
%f | 십진 소수점 | 3.14 |
%e 또는 %E | 과학적 기호 | 3.14e+00 또는 3.14E+00 |
%g 또는 %G | %f 또는 %e 중 짧은 것을 사용 | 다양 |
재미있는 예제를 들어보겠습니다:
#include <stdio.h>
int main() {
float pi = 3.14159;
printf("Pi is approximately %.2f\n", pi);
printf("In scientific notation: %e\n", pi);
return 0;
}
이 코드는 다음과 같은 출력을 줄 것입니다:
Pi is approximately 3.14
In scientific notation: 3.141590e+00
%.2f
에서 .2
를 사용하여 소수점 자릿수를 제한하는 것에 주목하세요. 이것은 정밀도를 제어하는 멋진 방법입니다!
문자열 포맷
지시자 | 설명 | 예제 |
---|---|---|
%s | 문자열 | "Hello, World!" |
%c | 단일 문자 | 'A' |
이제 이들을 사용해보겠습니다:
#include <stdio.h>
int main() {
char name[] = "Alice";
char initial = 'A';
printf("Hello, %s! Your name starts with %c.\n", name, initial);
return 0;
}
이 코드는 다음과 같은 출력을 낼 것입니다:
Hello, Alice! Your name starts with A.
파일 I/O 함수에서의 포맷 지시자
포맷 지시자는 콘솔 I/O뿐만 아니라 파일 I/O 함수에서도 사용됩니다. fprintf()
와 fscanf()
와 같은 함수는 printf()
와 scanf()
와 유사하게 작동하지만, 파일을 사용합니다. 빠른 예제를 들어보겠습니다:
#include <stdio.h>
int main() {
FILE *file = fopen("data.txt", "w");
if (file != NULL) {
int age = 30;
float height = 1.75;
fprintf(file, "Age: %d, Height: %.2f\n", age, height);
fclose(file);
}
return 0;
}
이 코드는 "data.txt"라는 파일을 생성하고, 형식화된 데이터를 파일에 씁니다.
그리고 여기서 끝입니다, 여러분! 포맷 지시자의 기본을 다루었습니다. 기억해두세요, 연습이 법입니다. 다양한 포맷 지시자를 사용하여 프로그램을 작성해보세요. 실험하고, 실수를 하고, 그것들을 통해 배우세요. 그게 최고의 프로그래머가 되는 방법입니다!
끝내기 전에, 여러분에게 프로그래머 유머 한 가지를 드리겠습니다: 왜 프로그래머들이 다크 모드를 선호하나요? 노란색은 벌을 유치하기 때문입니다! ?
코딩을 즐겁게, 컴파일 에러가 적고 성공이 많기를 바랍니다!
Credits: Image by storyset