본문 바로가기
language/C

서식문자

by abstract.jiin 2022. 9. 4.

서식문자 실습 

  1. 서식 문자를 이용한 형식 지정 
  2. %f
  3. %c  / %s
  4. 서식 문자의 확장 형식
  5. 아스키코드와 서식문자

 

1. 서식 문자를 이용한 형식 지정

1. 실수값의 경우 %와 f사이에 .숫자를 입력하여 소수점 아래 자리수 제어
2. %와 알파벳 사이의 정수값을 넣어서 데이터가 출력되는 공간 지정 가능
(데이터는 지정된 영역 안에서 오른쪽 정렬되어 출력)

 

printf("%10d\n", 132456);
printf("%10s\n", "test");

printf("가격\t: %8d 원\n", 20000);
printf("부가세\t: %8d 원\n", 2000);
printf("합계\t: %8d 원\n", 22000);

* 총 10칸비워서 우측 정렬

 

2. %f 

%f 서식문자로 실수값을 출력
> 기본적으로 소수점 아래 여섯자리까지 출력

%와 f사이에 숫자를 넣어서 소수점 아래 몇자리를
출력할 것인지 결정

printf("%f + %f = %f\n", 1.2, 2.4, 1.2 + 2.4);
printf("%.1f + %.1f = %.1f\n", 1.2, 2.4, 1.2 + 2.4);
printf("%.2f + %.2f = %.2f\n", 1.222, 2.4, 1.222 + 2.4);
printf("%.2f + %.2f = %.2f\n", 5.555, 6.6666, 5.555 + 6.6666);

결과 

1.200000 + 2.400000 = 3.600000          소수점 여섯자리까지 출력
1.2 + 2.4 = 3.6                                        소수점 한자리까지 출력
1.22 + 2.40 = 3.62                                  .뒤 숫자만큼 출력이 되더라, 라고 알고 있으면 됨
5.55 + 6.67 = 12.22

* 반올림의 경우 .숫자를 이용하면 정확한 결과를 출력하지 못한다.

 

3. %c  / %s

%c 서식문자로 1byte 문자의 출력 위치/형식 지정이 가능
%s 서식문자로 2byte 이상의 문자(=문자열)의 출력 위치/형식 지정 가능

 

printf("%c %c\n", 't', 's');
printf("%c\n", 'ㄱ'); //error code
printf("%c\n", 'test'); //error code

결과 

t s
?
t            >> 첫글자인 t만 출력

 

4. 서식 문자의 확장 형식 

1. 서식문자 사이(%기호와 문자 사이)에 정수 입력 시 
데이터 출력 시 정수만큼의 칸을 만들어서 데이터 출력 
정수값이 양수라면 오른쪽 정렬, 음수라면 왼쪽 정렬

2. 서식문자 사이(%기호와 문자 사이)에 실수 입력 시 
정수값은 기존과 동일하게 칸 수 지정 
실수값은 소수점 아래 몇 자리까지 출력할 것인지 지정
(ex. %10.3f >>10칸 공간에서 데이터는 오른쪽 정렬 
  소수점 아래 셋째자리까지 출력)

 

	int a = 10;
	double b = 1.111;
	char c[10] = "test";

	printf("a :%5d\nb:%10.3f\n", a, b);
	printf("c :%-10s,%10s\n", c, c); //-10s 는 왼쪽 정렬, 10s 는 오른쪽 정렬 



	double a = 1.123, b = 4.456, c = 7.789;
	printf("a:%10.3f\nb:-5.2ftest\nc:%.1f\n", a, b, c);

	/*결과
	 a :     1.123
	 b :4.46 test
	 c :7.8
	*/
	
	//활용 예
	int a = 191000, b = 19100;
	printf("금액\t%10d원\n부가세\t%10d원\n합계\t%10d원\n", a, b, a + b);

5. 아스키코드(ASCII)와 서식문자 

여러 장치/운영체제에서 동일한 문자를
동일한 2진수로 처리할 수 있도록 만들어 놓은 기준 값


아스키 코드를 사용하여 단일 문자를 %d 서식문자로 출력 가능 
+ 단일 문자에 +, - 연산이 가능

 

char ca = 'A';
printf("ca :%c, %d\n", ca, ca)
	// ca : A, 65

int va = 65
printf("va : %d, %c\n", va, va);
	//va : 65, A

char na = va + 32;
printf("na : %c, %d\n", na, na);
	//na : a,97

int sa = na + 1;
printf("sa : %d, %c\n", sa, sa);
	//sa : 98,b

char enter = '\n';
printf("\\n: %c,%d\n", enter, enter);
	//\n: 
	//, 10    > char 값은 enter가 double은 ASCII 10이 출력됨.

'language > C' 카테고리의 다른 글

연산자 II  (0) 2022.09.05
연산자  (0) 2022.09.05
형변환  (0) 2022.09.04
자료형  (0) 2022.09.04
출력  (0) 2022.09.04