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

+ Recent posts