출력 함수 : 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) 작은따옴표 출력
다음 시간에는 입력 함수에 대해 알아볼게요~
'언어 > C' 카테고리의 다른 글
3. 함수(1) (0) | 2020.02.19 |
---|---|
2. C프로그램의 구성 요소들 (0) | 2019.12.23 |
1. C언어의 소개와 C프로그램의 개발 (0) | 2019.11.04 |
댓글