본문 바로가기

공부/C언어

(C) 특수문자, 서식문자

특수문자 의미
\a 경고음
\b 백스페이스
\f 폼 피드
\n 개 행
\r 캐리지 리턴
\t 수평 탭
\v 수직 탭
\' 작은 따옴표 출력
\" 큰 따옴표 출력
\? 물음표 출력
\\ 역슬래쉬 출력

\f\v는 프린터 출력을 위해 정의된 특수문자임.

모니터 출력에서 사용하면, 이상한 문자 출력.


서식문자 자료형 출력 형태
%d char, short, int 부호 있는 10진수 정수
%ld long 부호 있는 10진수 정수
%lld long long 부호 있는 10진수 정수
%u unsigned int 부호 없는 10진수 정수
%o unsigned int 부호 없는 8진수 정수
%x, %X unsigned int 부호 없는 16진수 정수
%f float, double 10진수 방식의 부동소수점 실수
%Lf long double 10진수 방식의 부동소수점 실수
%e, %E float, double e 또는 E 방식의 부동소수점 실수
%g, %G float, double 값에 따라 %f와 %e 사이에서 선택
%c char, short, int 값에 대응하는 문자
%s char * 문자열
%p void * 포인터의 주소 값
//서식문자 예시
void main(void)
{
	int num1 = 5;
	int num2 = 7;
	int num3 = 9;
	
    //%x
	printf("num1: %d, num1 16진수: %x \n", num1, num1);
	
    //#
	printf("%o %#o \n", num2, num2);
	printf("%x %#x \n", num3, num3);
}
 num1: 5, num1 16진수: 5
 7 07
 9 0x9

#을 삽입하면 8진수 앞에 0, 16진수 앞에 0x가 삽입된다.

 

// 필드 폭 지정하기
void main(void)
{
	printf("%-8s %12s %7s \n", "이 름", "전화번호", "주소");
	printf("%-8s %14s %5s \n", "홍길동", "010-1234-5678", "서울");
	printf("%-8s %14s %5s \n", "김철수", "010-4321-9876", "대전");
	printf("%-8s %14s %5s \n", "김수철", "010-1111-2222", "대구");
}
 이 름        전화번호        주소
 홍길동    010-1234-5678  서울
 김철수    010-4321-9876  대전
 김수철    010-1111-2222  대구

서식문자 사이에 들어가는 숫자는 필드의 폭을 의미

기본은 오른쪽 정렬이다.

 

예)

%8 : 필드 폭을 8칸 확보하고, 오른쪽 정렬 후 출력

%-8 : 필드 폭을 8칸 확보하고, 왼쪽 정렬 후 출력