Desc :
1. %d , %i 의 차이
printf와 같은 output에서는 차이가 없다
scanf같은 input 형식 지정자일 때
%d : signed 10진수 정수를 입력 받음
%i : 10진수/8진수/16진수 입력 받음
scanf("%i", &a); // 011 입력 --> 9로 받음
scanf("%d", &a); // 011 입력 --> 11로 받음
2. %g
%f 와 %e 중 좀 더 간소한 출력을 자동으로 결정하여 출력
Source Code :
#include <stdio.h>
void main()
{
int i;
char *pi;
char *string = "books";
//문자, 정수값
printf("[%c]\n", 'A');
printf("[%d]\n", 7);
printf("[%i]\n", 7);
printf("[%5d]\n", 7); // 최소5자리 오른쪽 맞춤, 빈자리는 공백
printf("[%05d]\n", 7); // 최소5자리 오른쪽 맞춤, 빈자리 0으로 채움
printf("[%+d]\n", -12345); // 정수값 출력시 부호도 같이 출력 (양수 +)
printf("[%+d]\n", 12345);
printf("[%d]\n", -12345); // 정수값 출력시 양수는 부호출력 x
printf("[%u]\n", 12345); // 양수만 출력
printf("[%u]\n", -12345); // 음수라면 양수로 변경되어 출력
//8진수, 16진수
printf("[%x]\n", 0xFF); // 16진수 영문자 값을 소문자로
printf("[%X]\n", 0xFF); // 대문자로 출력
printf("[%#x]\n", 0xFF); // 출력시 선두에 0x
printf("[%#x]\n", 12345); // 10진수를 16진수로 출력
printf("[%o]\n", 0123); // 8진수 출력
printf("[%#o]\n", 0123); // 선두에 0 붙여 출력
//고정소수점
printf("[%f]\n", 3.141592); // 고정소수점은 소수점이하 6자리까지만 출력된다
printf("[%5f]\n", 3.141592); // 최소 5자리, 출력하는 숫자가 크면 무시되고 출력됨
printf("[%.f]\n", 3.141592); // 소수점 이하 자리 출력하지 않는다
printf("[%.2f]\n", 3.141592); // 소수점 이하 2자리를 출력
printf("[%2.2f]\n", 3.141592);
printf("[%5.5f]\n", 3.141592); // 총 자리수 5자리, 소수점 이하 5자리
printf("[%20.5f]\n", 3.141592); // 총 자리수 20, 오른쪽 정렬
printf("[%-20.5f]\n", 3.141592); // 왼쪽정렬
//부동소수점
printf("[%e]\n", 3.141592);
printf("[%E]\n", 3.141592);
printf("[%5e]\n", 3.141592);
printf("[%.e]\n", 3.141592); // 소수점 이하 출력하지 않음
printf("[%.2e]\n", 3.141592); // 소수점 이하 2자리만
printf("[%2.2e]\n", 3.141592); // 소수점 이하 2자리만
printf("[%5.5e]\n", 3.141592); // 소수점 이하 5자리만
printf("[%20.2e]\n", 3.141592); // 총 자리수 20, 소수점이하 2자리
printf("[%20.2E]\n", 3.141592);
printf("[%-20.2E]\n", 3.141592); // 왼쪽정렬
//스마트형
printf("[%g]\n", 3.141592);
//문자열형
printf("[%s]\n", string);
printf("[%10s]\n", string); //총 10자리, 10초과시 자동 증가, 오른쪽 정렬
printf("[%-10s]\n", string); // 왼쪽 정렬
printf("[%2s]\n", string);
printf("[%2.2s]\n", string); // 총 2자리, 2자리만 출력
printf("[%3.2s]\n", string); // 총 3자리, 2자리만 출력, 오른쪽부터
printf("[%010s]\n", string); // 총 10자리, 빈공간은 0으로 채움
// 포인트형
printf("[%p]\n", &i);
printf("[%p]\n", &pi);
}
Result :
'C' 카테고리의 다른 글
[C] 204 홀수/짝수 구분하기 (1) | 2021.02.04 |
---|---|
[C] 203 삼각형 출력 (1) | 2021.02.04 |
[C] scanf() 활용 (오류ㅠㅠ) (3) | 2021.02.04 |
[C] 200 내장 매크로 (1) | 2021.02.04 |
[C] 199 #pragma (1) | 2021.02.04 |