본문 바로가기
언어/C

4. 함수(2)

by 코드 이야기 2020. 2. 26.
728x90

출력 함수 : printf()

 

이번 시간에는 변수를 이용한 출력, 그리고 출력 값 자릿수 지정에 대한 것들을 이어서 해보겠습니다!

여러 예시들과 함께 볼 것이므로 꼭! 함께 실행해 보시길 추천드립니다!

이전 글과 함께 보는 것을 추천!

2020/02/19 - [알고리즘/차례대로 배우는 문법(C)] - 함수(1)

 

우선 변수를 이용한 출력을 해보겠습니다!

#include<stdio.h>

int main(){
	int i=123;
	float f=12.345;
	char c='A';
    
	printf("정수형 변수 i = %d\n실수형 변수 f = %f\n문자형 변수 c = %c", i, f, c);
}
/*실행 결과*/
정수형 변수 i = 123
실수형 변수 f = 12.345000
문자형 변수 c = A

이전 글의 형식 문자열을 이용한 출력을 응용하여 이런 식으로 해주면 됩니다!

 

으음... 저 float(실수형) 출력 상태가 부우우우우울편 하죠?

끄트머리에 있는 '0' 4마리는 왜 붙은걸까요?

float(실수형)은 4바이트의 용량을 가지고 있습니다. 소수점 밑의 6자리까지 표시할 수 있는 양의 크기죠.

그래서 6자리를 모두 출력해줍니다.

 

 

 

출력 값 자릿수 지정을 이용해 편안하게 출력해볼게요!

#include<stdio.h>

int main(){
	float f=12.345;
    
	printf("실수형 변수 f = %.3f", f);
}
/*실행 결과*/
실수형 변수 f = 12.345

%와 f사이에 .을 찍고 소수점 밑에 몇 자릿수까지 표시할 것인지 지정해주면 됩니다!

 

 

 

 

이어서 여러 개의 예시를 볼게요.

#include<stdio.h>

int main(){
	float f=12.345;
    
	printf("f = %.2f", f);
	printf("\nf = %6.1f", f);
	printf("\nf = %-6.1f", f);
	printf("\nf = %5.3f", f);
}
/*실행 결과*/
f = 12.35     //1
f =   12.3    //2
f = 12.3      //3
f = 12.345    //4

1) %.2f    -> 소수점 밑의 두 자릿수까지 출력

 

2) %6.1f  -> 6자리의 공간(자릿수)을 만들어 소수점 밑의 첫 번째 자릿수까지 표현 

             -> 이게 무슨 말이냐! _ _ _ _ _ _ 이처럼 여섯 개의 자리를 만들어서

                 _ _ 1 2 . 3 이처럼 값을 담은 것입니다.

 

3) %-6.1f -> 6자리의 공간(자릿수)을 만들어 소수점 밑의 첫 번째 자릿수까지 표현 + 왼쪽 정렬

                1 2 . 3 _ _  이처럼 값을 담은 것입니다.

 

4) %5.3f  -> 5자리의 공간(자릿수)을 만들어 소수점 밑의 세 번째 자릿수까지 표현

             ??! 그렇다면 자릿수가 모자라지 아니한가! 어떻게 정상적으로 나오는 것이지?!

             1 2 . 3 4 5 이렇게 나와야 한다고 생각하는 것은 옳습니다만, 

             소수점 뒤의 끝자리를 자르는 데에는 말을 잘 듣는 컴퓨터는 앞의 자리를 자르려고 하면

             자르지 못하고 튀어나와버립니다... 바보...

 

 

 

 

 

이어서 +, 0을 이용한 두 가지의 예시를 보겠습니다!

#include<stdio.h>

int main(){
  int i_mi=123;
  int i_pl=-123;
  
  printf("%d\n%d",i_mi, i_pl);
}
/*실행 결과*/
123
-123

마이너스인 수는 -가 붙어서 나오지만 플러스인 수는 따로 +표시를 해달라고 컴퓨터에게 알려줘야 합니다!

#include<stdio.h>

int main(){
  int i_mi=123;
  int i_pl=-123;
  
  printf("%+d\n%+d",i_mi, i_pl);
}
/*실행 결과*/
+123
-123

이렇게 말이죠!

 

 

#include<stdio.h>

int main(){
  int i_mi=123;
  int i_pl=-123;
  
  printf("%05d",i_mi);
  printf("\n%+05d", i_pl);
}
/*실행 결과*/
00123
-0123

다섯 개의 자릿수를 만들어 빈 공간에는 0을 채워준다.

0 0 1 2 3

- 0 1 2 3

 

 

 

 

 

마지막으로 Escape 문자를 이용한 출력을 보고 이번 글은 마무리하겠습니다!

Escape문자는 어디에 쓰는 것이냐!

/*실행 결과*/
"안녕 세상아!"

이런 출력 결과를 얻고 싶다면 어떻게 하실 건가요??

printf(""안녕 세상아!"");

라고 생각하셨나요??!

직접 해보시면 에러가 나는 모습이 나타납니다 흑흑

큼 따옴표는 문자열의 시작과 끝을 알려주는 특수기호이기 때문에 printf(""안녕 세상아!"");

밑줄 친 부분을 문자열이라고 생각합니다;;;

그렇기 때문에 "를 출력하기 위해선

\(역슬래쉬 or 원화)와 "를 함께 써야 합니다.

#include<stdio.h>

int main(){
  printf("\"안녕 세상아!\"");
}
/*실행 결과*/
"안녕 세상아!"

이런 식으로 말이죵

 

https://www.acmicpc.net/problem/10171

 

10171번: 고양이

문제 아래 예제와 같이 고양이를 출력하시오. 입력 출력 고양이를 출력한다. 예제 입력 1 복사 예제 출력 1 복사 \ /\ ) ( ') ( / ) \(__)|...

www.acmicpc.net

이 문제로 연습해보시면 좋을 거예요ㅎㅎ

 

 

 

 

 

몇 가지 Escape문자를 알려드리고 글을 마무리하겠습니다ㅎㅎ

\n (Line feed)          줄을 바꿔주는 문자

\t (Tab)                  [tab] 키와 동일한 기능

\" (Quote)              큰 따옴표를 출력

\a (Bell)                  "삑" 소리를 냄

\b (Back space)        왼쪽으로 한 칸 이동

\f (Form feed)          프린터에서 한 페이지 이동

\r (Carriage return)    커서를 1열로 이동

\\ (Back slash)         원화 또는 역슬래시 출력

\' (Apostrophe)        작은따옴표 출력

 

 

 

 

다음 시간에는 입력 함수에 대해 알아볼게요~

 

 

 

728x90

'언어 > C' 카테고리의 다른 글

3. 함수(1)  (0) 2020.02.19
2. C프로그램의 구성 요소들  (0) 2019.12.23
1. C언어의 소개와 C프로그램의 개발  (0) 2019.11.04

댓글