안녕하세요. 박사과정 모닝입니다!
오늘은 printf() 함수를 사용할 때에, 표준 출력 형식 지정자를 사용하여 printf() 함수 안의 내용을 일반 문자열이 아닌 숫자로 인식되게 하는 방법을 정리해보겠습니다.
1. 표준 출력 형식 지정자
printf() 출력 함수에서는 큰 따옴표 안에 숫자를 입력하더라도 일반 문자열로 취급됩니다. 따라서 연산 등의 작업을 수행할 수 없습니다. 이때, 큰 따옴표 안의 숫자를 문자열이 아닌 '숫자'로서 인식하게 하고자 할 때 사용해야 하는 것이 표준 출력 형식 지정자 입니다. 숫자가 위치할 곳에 표준 출력 형식 지정자를 선언하고, 선언한 형식 지정자와 1:1로 대응이 되도록 숫자 또는 변수명을 입력해줍니다.
printf("표준 출력 형식 지정자", 변수명 또는 숫자);
printf("%d", 3);
printf("%f", 1.1);
2. 대표적인 표준 출력 형식 지정자
가장 많이 사용되는 표준 출력 형식 지정자는 아래와 같습니다.
종류 | 자료형 | 지정자 | 설명 |
10진수 정수 | signed int | %d | 부호 있는 정수 출력(4바이트) |
실수 | float | %f | 10진수 실수(4바이트) |
문자 | char | %c | 문자 데이터 |
문자열 | char*, char[ ] | %s | 문자열 데이터 |
3. 표준 출력 형식 지정자를 이용한 출력 예시
표준 출력 형식 지정자는 출력하고자 하는 숫자의 개수와 반드시 1:1로 대응되어야 합니다.
#include <stdio.h>
int main(void)
{
printf("%d, %d \n", 123,1234);
return 0;
}
4. 데이터 출력 형식의 종류
데이터 출력 형식은 다음과 같이 세 가지 종류가 있습니다.
종류 | 설명 |
- | 데이터를 왼쪽으로 정렬하여 출력 (지정하지 않을 시, 오른쪽으로 정렬하여 출력) |
+ | 숫자에 +/- 부호를 붙여서 출력 |
0 | 출력할 데이터보다 길이를 크게 지정하는 경우, 빈칸을 0으로 채움 |
5. 정수형 데이터 자릿수 지정
%d 자릿수 지정 방법은 다음과 같습니다.
전체 자릿수 지정 | 전체 자릿수 지정+빈칸을 0으로 채우기 |
%(전체 자릿수)d | %0(전체 자릿수)d |
예를 들어 %d라고 지정한 다음 숫자를 입력하면, 입력하는 숫자의 자릿수 만큼 기본적으로 출력됩니다. %5d라고 지정하고 3자리 숫자를 입력하는 경우, 5개의 자리를 확보한 다음 오른쪽 정렬로 3자리만 출력됩니다. 즉 왼쪽의 두 칸은 빈칸입니다. 반대로 %-5d라고 지정하고 3자리 숫자를 입력하면, 3자리가 왼쪽 정렬되어 출력된 다음 오른쪽 나머지 두 칸이 빈칸이 됩니다. 마지막으로 %05d라고 입력하는 경우, 예를 들어 123을 입력하게 되면 00123 이렇게 출력됩니다.
6. 실수형 데이터 자릿수 지정
%f 자릿수 지정 방법은 다음과 같습니다.
수서점 포함 전체 자리수 지정 | 왼쪽 정렬+소수점 포함 전체 자리수 지정 | 소수점 이하 자릿수 지정 |
%(전체 자릿수).(소수점 이하 자릿수)f | %-(전체 자릿수).(소수점 이하 자릿수)f | %.(소수점 이하 자릿수)f |
%f 출력 예시는 다양하기 때문에, 아래 표에 다시 정리해보도록 하겠습니다.
형식 | 예시_()는 빈칸을 나타냄 | 설명 |
%f | 358.123456 | 실수형 기본 자릿수인 소수 여섯째 자리까지 무조건 출력 |
%.2f | 358.12 | 소수 둘째 자리까지 출력. 셋째 자리에서 반올림, 오른쪽 정렬 |
%6.1f | ()358.1 | 전체 6자리, 소수 첫째 자리까지 출력, 둘째 자리에서 반올림, 오른쪽 정렬 |
%-6.1f | 358.1() | 전체 6자리, 소수 첫째 자리까지 출력, 둘째 자리에서 반올림, 왼쪽 정렬 |
%7.3f | 358.123 | 전체 7자리, 소수 셋째 자리까지 출력, 넷째 자리에서 반올림, 오른쪽 정렬 |
%010.3f | 000358.123 | 전체 10자리, 소수 셋째 자리까지 출력, 넷째 자리에서 반올림, 빈칸은 0으로 채움, 오른쪽 정렬 |
7. 문자열형 데이터의 자릿수 지정
C언어에서는 문자열의 자료형을 제공하지 않습니다. 그래서 배열이나 포인터 변수를 사용해야 합니다. 배열과 포인터에 대한 자세한 설명은 다음에 하기로 하고, 문자열형 데이터의 자릿수를 지정하는 출력 형식을 정리해보겠습니다.
전체 자릿수 지정 | 왼쪽 정렬+전체 자릿수 지정 |
%(전체 자릿수)s | %-(전체 자릿수)s |
'C' 카테고리의 다른 글
[C 언어] 식별자, 예약어, 변수, 변수 이름 - 코드 119 (0) | 2022.12.14 |
---|---|
아스키코드, ASCII -코드119 (0) | 2022.12.13 |
문자 입력, 문자열 입력, scanf_s() - 코드119 (0) | 2022.12.13 |
scanf, scanf_s 차이-코드119 (0) | 2022.12.13 |
[C 언어] printf, printf(), 표준 출력 함수 1-코드119 (0) | 2022.12.10 |